相对于客户端的服务器上的Date.now()?

这是我的情况:

我有一个客户端连接到一个服务器与Node.js,socket.io。

如果我计算服务器上的Date.now(),将其发送到客户端,然后让客户端打印从服务器收到的时间,它是自己的Date.now()我得到一个非常奇怪的结果:服务器的时间是514毫秒比客户的时间。 但是逻辑上,服务器Date.now()必须在客户端之前发生。

我不明白这里发生了什么事。 由于服务器的时区,服务器是否计算Date.now()与客户端不同? 还有其他事情发生吗?

你所看到的叫做时钟歪斜。 像任何时钟一样,计算机内部的时钟必须设置为正确的时间,并且任何两台计算机的时钟缓慢地相互分开。 所以,几乎可以肯定的是,任何两台电脑都会认为它有一个稍微不同的时间。 通常情况下,这种差异足够小,以至于你没有注意到,但是当你故意运行一个像你刚刚做的那样的实验时,可以看到它的大小。