具有DST支持和服务器同步的世界时钟

时间:2010-01-24 00:11:00

标签: javascript time sync clock

我想在我的主页上添加一个像http://www.dynamicdrive.com/dynamicindex6/localtime.htm这样的JavaScript世界时钟,但每次DST更改时区时我都不想更改它。是否可以自动与官方时间服务器同步,以便我可以在DST后显示不同地方的当前时间并且没有任何更改?

1 个答案:

答案 0 :(得分: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

  4. 但需要注意的是:它不能保证准确,因为从理论上讲,当某人打开窗户(他们可能位于夏令时的边界)时,某个地点的时区可能会发生变化。这不太可能,页面刷新会显示正确的时间,所以这可能不是什么大问题。