PHPで、
date_default_timezone_set('Europe/London'); echo date('Y-m-d H:i:s', 0);
ってやったら、
1970-01-01 01:00:00
って出た。
ん?日本と9時間違うはずなのに...
で調べてみたら、Wikipedia に書いてあった。
Wikipedia 英国夏時間
1968年2月18日1時(UTC)から1971年10月31日2時(UTC)までの期間、グリニッジ標準時よりも1時間早い英国標準時(BST: British Standard Time, UTC+1)を標準時とし、通年でこれを用い、夏時間が実施されなかった。
もろ、1時間進んでたときだったのね。
で、次のコードで確認してみたら、思った通りにちゃんと出た。
// タイムゾーンを Europe/London にする date_default_timezone_set('Europe/London'); echo date('Y-m-d H:i:s I e P T', 0); // タイムゾーンを Asia/Tokyo にする date_default_timezone_set('Asia/Tokyo'); echo date('Y-m-d H:i:s I e P T', 0); // タイムゾーンを Europe/London にする date_default_timezone_set('Europe/London'); // 1971/10/31 02:00:00 $intTime = mktime(2,0,0,10,31,1971); echo date('Y-m-d H:i:s I e P T', $intTime); // タイムゾーンを Asia/Tokyo にする date_default_timezone_set('Asia/Tokyo'); echo date('Y-m-d H:i:s I e P T', $intTime);
結果はこれ
1970-01-01 01:00:00 0 Europe/London +01:00 BST 1970-01-01 09:00:00 0 Asia/Tokyo +09:00 JST 1971-10-31 02:00:00 0 Europe/London +00:00 GMT 1971-10-31 11:00:00 0 Asia/Tokyo +09:00 JST
サマータイムじゃないから、フラグも立ってない。
0 件のコメント:
コメントを投稿