我被要求在我们的网站上显示“正确”时间,坦率地说,我觉得这毫无意义,因为“正确”可以用多种方式解释。
我们当前的方法肯定会导致时间不准确,因为它使用服务器控件呈现 JavaScript,该 JavaScript 使用来自服务器的日期时间作为参数运行 onload,以在 JavaScript 中创建一个时钟对象,最终呈现在页面上,然后开始递增时钟。在服务器处理、网络延迟和客户端性能(还有很多其他的负载运行)之间,时钟最终与实际服务器时间相差甚远,与客户端 PC 相比谁知道呢。
因此,为了获得“正确”的时间,我可以;
- 使用本地 PC 时间并将 new Date() 传递给 JavaScript 时钟对象。优点:应尽可能接近 PC 时钟。缺点:不确定 PC 时钟在哪个时区的准确度更不用说。
- 使用网络服务向 NTP 服务器发送 TCP 请求以更新网页上的时钟。优点:如果本地 PC 也同步到 NTP 将是准确和最佳匹配。缺点:必须处理与我们的服务器相关的所有时区调整。如果 PC 时钟不匹配,仍然会出现不匹配。
我是实现自己的网络服务还是使用类似的东西;地球工具或世界时间网络服务(编辑:链接已删除 - 现在 404)
这是Jon Galloway 的一篇关于原子钟网络服务的博客文章,它已经很老了,但当我用谷歌搜索时排名很高,他没有得出结论。
希望我能赢得管理层的争论,如果您不在那个时区,为什么同步到我们的服务器时钟 (GMT) 没有意义,以及为什么我们甚至需要匹配本地 PC。
我缺少这方面的任何角度吗?