【发布时间】:2008-10-28 17:33:25
【问题描述】:
我被要求在我们的网站上显示“正确”时间,坦率地说,我觉得这毫无意义,因为“正确”可以用多种方式解释。
我们当前的方法肯定会导致时间不准确,因为它使用服务器控件呈现 JavaScript,该 JavaScript 使用来自服务器的日期时间作为参数运行 onload,以在 JavaScript 中创建一个时钟对象,最终呈现在页面上,然后开始递增钟。在服务器处理、网络延迟和客户端性能(还有很多其他东西在负载上运行)之间,时钟最终会与实际服务器时间相差甚远,与客户端 PC 相比,谁知道呢。
所以我可以得到显示的“正确”时间;
- 使用本地 PC 时间并将 new Date() 传递给 JavaScript 时钟对象。优点:应尽可能接近 PC 时钟。缺点:不确定 PC 时钟在哪个时区的准确度更不用说。
- 使用 Web 服务向 NTP 服务器发送 TCP 请求以更新网页上的时钟。优点:如果本地 PC 也同步到 NTP 将是准确和最佳匹配。缺点:必须处理与我们的服务器相关的所有时区调整。如果 PC 时钟超时,仍然会出现不匹配。
我是实现自己的网络服务还是使用类似的东西; Earth Tools 或世界时间网络服务(编辑:链接已删除 - 现在为 404)
这是来自Jon Galloway on Atomic Clock Web Service 的一篇博文,它很老了,但当我用谷歌搜索时排名很高,他没有得出结论。
希望我能赢得管理层的争论,为什么如果您不在那个时区同步到我们的服务器时钟 (GMT) 没有意义,以及为什么我们甚至需要匹配本地 PC。
我缺少任何角度吗?
【问题讨论】:
-
时钟的用途是什么?需要什么分辨率?秒?分钟?显示的是客户端本地时区吗?
-
我个人在 UTC 上运行一切,尤其是在服务器上:如果您将时间发布为 13:47 UTC,则不会造成混淆。就此而言,eBay 的系统也不存在将 PT 用于所有事情的系统。
标签: javascript web-services timezone