3

http://www.dynamicdrive.com/dynamicindex6/localtime.htmのような JavaScript ワールド タイム クロックをホームページに含めたいのですが、タイム ゾーンの DST が変更されるたびに変更したくありません。公式のタイム サーバーと自動的に同期して、さまざまな場所の現在の時刻をライブで表示し、DST 後に変更を加えないようにすることはできますか?

4

1 に答える 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の実装:

  1. 上記のメソッドを使用して、関心のあるすべての異なるタイムゾーンを PHP に出力させますがdate('Z')、UTC からの秒オフセットを取得するために使用します。JSON などを使用して出力し、Javascript で使用できるようにします。

    var offsets = {
        'Brisbane' : 36000,
        'Sydney'   : 42000,
        'London'   : 0
    };
    
  2. それらすべてをループし、必要に応じてオフセットを加算および減算します。

    for (var city in offsets) {
        var d = new Date();
        d.setTime(d.getTime() + offsets[city] * 1000);
        alert('The time in ' + city + ' is ' + d.toUTCString());
    }
    
  3. setIntervalを使用して、上記を毎秒呼び出される関数に入れます

理論的には、誰かがウィンドウを開いている間に場所のタイムゾーンが変更される可能性があるためです (DST の境界上にいる可能性があります)。その可能性は高くなく、ページを更新すると適切なタイミングで表示されるため、おそらく大したことではありません。

于 2010-01-24T01:48:55.563 に答える