NodeJS和JS时间戳差异为45秒

时间:2015-08-13 15:57:47

标签: javascript node.js timestamp

我使用NodeJS作为我的服务器端语言,并使用new Date().getTime()生成新的毫秒时间戳。然后我使用客户端JS函数计算前一段时间,它还使用new Date().getTime()生成一个时间戳,用于比较服务器时间戳。但是,对于新项目,前一段时间是不准确的,并且在我的客户端控制台和我的节点控制台中同时调用new Date().getTime()会导致时间戳相差约45秒。我正在使用AWS作为我的服务器托管,如果这可能以任何方式影响它。为什么会发生这种情况?我知道它与代码无关,因为即使是控制台也彼此不同。

2 个答案:

答案 0 :(得分:0)

我发现问题确实存在于我的AWS实例中。我的系统也有不正确的时间戳,我使用命令date +%s发现了这个时间戳。虚拟机在维护正确的系统时间方面往往存在很多问题,AWS在虚拟机上运行其非专用系统(也可能是其专用系统)。我用命令sudo ntpdate pool.ntp.org重新开始了我的时间。然而,在生产中创建这样的即时跳转可能是危险的,所以我发现guide显示了如何设置NTP以在系统时钟不同步时慢慢重新调整系统时钟。这解决了我遇到的所有时间戳问题!

答案 1 :(得分:0)

使用单一的事实来源,不检查客户端时间,因为它在用户的浏览器上执行(可以在中国生活,有6个小时的差异)

对于服务器,按原样使用时间,没有魔力。但是对于客户端,请向服务器发出ajax请求以获取服务器时间,以便全世界的所有客户端和服务器都正确同步,显然http-request需要一些时间,平均50ms,但它是值得的。即使您的服务器时间不正确,所有客户端也将同步到您的服务器时间