内部の日付形式をタイムスタンプ値に変換する関数を書いています。ただし、日付をYYYY-MM-DD HH形式で印刷すると、日付が12時間ずれます。
以下のコードは私に間違った日付と時刻を与えます。私は2011-03-2513を期待していますが、代わりに2011-03-2501を取得しています。
date_default_timezone_set("Europe/London");
$epoch = mktime(13,0,0,3,25,2011);
echo date('Y-m-d h', $epoch);
次のコードを使用すると、2001-02-01 01を期待し、期待どおりの結果が得られます。
date_default_timezone_set("Europe/London");
$epoch = mktime(1,0,0,2,1,2011);
echo date('Y-m-d h', $epoch);
12時間のオフセットは、3月25日の13時間から始まるようです。
なぜこれが起こるのか、そしてどうすればそれが起こらないようにするのか、何か考えはありますか?これは、夏時間の異なる日付と関係がありますか?サーバーのタイムゾーンは「America/Los_Angeles」に設定されています。