3

日付文字列を別の日付文字列に変換する次の見苦しいコードがあります。

//$invDate starts as a date string in format dd/mm/yyyy
$dateArray = explode('/', $invDate);      
$invDate = $dateArray[0] .' '.  date("F",mktime (1,1,1,$dateArray[1])) .' '. $dateArray[2];

私はそれを特に誇りに思っているわけではありませんが、米国と英国の両方の日付の方法が混乱を招く可能性がある国で、明確な日付を生成します.

ずっと元気に動いていたのに、今日急に回り始めた

01/06/2012

の中へ

1 July 2012

mktime (1,1,1,6)mktime がどのように動作するかを見てきましたが、7 月に日付を作成する理由がわかりません。何か案は?

4

1 に答える 1

5

これは、mktimeが欠落しているフィールドの現在の時刻にデフォルト設定されているために発生しています。日付を指定しなかったため、今日は存在しないMay 31stと仮定しているため、7 月にラップします。June 31mktime に 5 番目の引数を追加して日を指定します。

date("F", mktime(0, 0, 0, $dateArray[1], 1))
于 2012-05-31T20:43:50.650 に答える