任意のタイムゾーンをUTC
に変換し、逆にしたいスクリプトを記述しようとしています。しかし、DSTの考慮の有無にかかわらず、タイムゾーンをUTC
に変換している間、同じUTC
時間を与えることを知りました。例:これを変換しようとすると:
$mytime = '2011-03-31 05:06:00.000';
$myzone = 'America/New_York';
dSTありおよびDSTなしのUTCに、iは..
(New_York->UTC DST=Yes)2011-03-31 09:06:00
(New_York->UTC DST=No)2011-03-31 09:06:00 ..........
これはコレクトですか?誰でもあなたの答えをください。
いいえ、UTC自体にDSTはありません。これは、他の時間帯が相対的に表現される一定の基準フレームです。
Wikipedia UTCページ から:
UTCは季節の変化に伴って変化しませんが、タイムゾーンの管轄区域が夏時間または夏時間を遵守している場合、現地時間または市民時間は変化する可能性があります。たとえば、UTCは、冬の間は米国東海岸の現地時間よりも5時間進んでいますが、夏の間は4時間進んでいます。
言い換えれば、タイムゾーンがDSTを監視する場合、DSTの移行があるとUTCからのオフセットが変化しますが、それはUTCではなくDSTを監視するそのタイムゾーンです。
PHPタイムゾーンの処理について詳しく知らない場合、変換で "with DST"または "without DST"を指定できることは奇妙に思えます。タイムゾーン自体がDSTの開始時刻を指定します。 ..自分で指定する必要はありません。
私はこのコードを使用して同じ問題を抱えています:
date_default_timezone_set('UTC');
$nowdate = date('l jS \of F Y h:i:s A');
echo "Current date and time is: " . $nowdate;
現在は夏であり、このコードが生成する時間は1時間遅れています。したがって、PHPのUTC時間はDSTに合わせて調整されるとは思いません。
誰かが解決策を持っているかどうかを確認するのは興味深いです...
編集:
フォーラムでこのコードを見つけ、完全に動作します!!
date_default_timezone_set('Europe/London');
$TIME = date("m/d/Y H:i",time());
したがって、$ TIMEを使用して現在の日付と時刻を呼び出すことができます。 date()タグ内のビットを変更することにより、出力を調整して異なる表示を行うことができます。 date()の出力を調整する場合は、このガイドを使用してください。 http://php.net/manual/en/function.time.php
お役に立てれば :)