http://www.dynamicdrive.com/dynamicindex6/localtime.htmのような JavaScript ワールド タイム クロックをホームページに含めたいのですが、タイム ゾーンの DST が変更されるたびに変更したくありません。公式のタイム サーバーと自動的に同期して、さまざまな場所の現在の時刻をライブで表示し、DST 後に変更を加えないようにすることはできますか?
2704 次
1 に答える
1
標準date
機能と合わせてご利用くださいdate_default_timezone_set
。
$timezones = array("Australia/Brisbane", "America/New York", "Europe/London");
foreach ($timezones as $tz) {
date_default_timezone_set($tz);
echo "The time in $tz is: " . date('r');
}
すべての夏時間とすべてを処理します。
サポートされているタイムゾーンのリストは、http ://www.php.net/manual/en/timezones.php で確認できます。
編集: Javascriptの実装:
上記のメソッドを使用して、関心のあるすべての異なるタイムゾーンを PHP に出力させますが
date('Z')
、UTC からの秒オフセットを取得するために使用します。JSON などを使用して出力し、Javascript で使用できるようにします。var offsets = { 'Brisbane' : 36000, 'Sydney' : 42000, 'London' : 0 };
それらすべてをループし、必要に応じてオフセットを加算および減算します。
for (var city in offsets) { var d = new Date(); d.setTime(d.getTime() + offsets[city] * 1000); alert('The time in ' + city + ' is ' + d.toUTCString()); }
setIntervalを使用して、上記を毎秒呼び出される関数に入れます
理論的には、誰かがウィンドウを開いている間に場所のタイムゾーンが変更される可能性があるためです (DST の境界上にいる可能性があります)。その可能性は高くなく、ページを更新すると適切なタイミングで表示されるため、おそらく大したことではありません。
于 2010-01-24T01:48:55.563 に答える