我想在我的主页中包含一个像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 回答