我想在我的主页中添加一个JavaScript世界时钟,如http://www.dynamicdrive.com/dynamicindex6/localtime.htm,但我不希望每当DST更改时区时都更改它。是否可以自动将其与官方时间服务器同步,以便我可以在现场显示不同地点的当前时间,并且在DST之后没有任何更改?DST支持和服务器同步的世界时钟
回答
使用标准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输出或东西,所以Java脚本可以使用它:通过他们所有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的边界)。这不太可能,刷新页面会显示正确的时间,所以这可能不是什么大问题。
您忘记提及您在他/她需要JavaScript时使用PHP。我建议将所有初始数据加载到某些表单域中,并使用JavaScript通过使用setInterval函数进行轮询来更新它们的时间。 – 2010-01-24 02:20:33
是的,我已经在使用这样的代码,但我想要使用JavaScript实时更新时钟,并且仅为
@Peleke现在检查编辑。 – nickf 2010-01-24 06:40:19
- 1. 如何使一个服务器端的世界时钟XPages中
- 2. 服务器和客户端之间的同步时钟
- 3. 构建世界时钟
- 4. 世界时钟不勾选
- 5. SOA服务边界和生产支持
- 6. 通过时差和DST获得世界各地的生日
- 7. 服务器场中的Web服务器是否必须为ASP.NET状态服务器同步服务器时钟?
- 8. 谷歌AppEngine上的服务器实例的时钟同步
- 9. iOS游戏世界的日历/时钟
- 10. Windows phone 7中的世界时钟
- 11. Rails time_zone_select DST支持?
- 12. 同步本地和服务器时间
- 13. 客户端和服务器同时支持多种语言
- 14. 客户端服务器与脱机支持同步
- 15. 连接在登录服务器,转发到世界服务器
- 16. 以环形模式同步服务器时钟
- 17. 基于世界时钟的JavaScript计时器?
- 18. 在Actionscript 3.0中创建世界时钟
- 19. 在PHP或JavaScript中世界时钟API
- 20. 时钟同步
- 21. 同步客户端和服务器程序之间的时钟在c
- 22. 设计使用同时支持同步和异步调用
- 23. Minecraft服务器的世界边界修剪脚本
- 24. Skybox旋转与世界不同步
- 25. 在同一窗口中添加多个世界时钟?
- 26. Web服务器支持的同时连接数
- 27. 在同一端口上支持IPv6和IPv4的C#服务器
- 28. Thrift C++服务器超时,java服务器不支持
- 29. WebSocket服务器支持
- 30. 如何运行CANVASENGINE服务器和物理世界
Windows Server/.NET有很多关于时区的记录,因此取决于您的环境,您可能甚至不需要官方时间服务器。你的问题没有说明,但是如果你正在寻找一个没有任何服务器端代码的“纯粹”JavaScript解决方案。 – 2010-01-24 00:39:14
服务器运行在Linux(Debian)上,如果需要服务器端语言,我想使用PHP(我的网站的其余部分也是用PHP编写的)。 – Peleke 2010-01-24 01:30:51