聊天在服务器和客户端上的Date.now()有所不同

时间:2016-10-08 06:26:30

标签: javascript node.js date time chat

我与node.jssocket.io建立了聊天。

当用户发送消息时,我将其直接插入DOM并将消息发送到服务器,因此可以将其发送给所有其他客户端。

问题是服务器上设置Date.now()的时间戳似乎与客户端上设置的时间戳完全相同。

这使得界面有点奇怪,因为稍后发送的消息可以在先前发送的消息之前显示时间戳。

一种解决方案是计算用户加入聊天室时的时差,并在添加新消息时减去这种差异,但这是否真的有必要或者这是解决此问题的常用方法?这也可以成为应对时区等的解决方案吗?

1 个答案:

答案 0 :(得分:0)

客户端和服务器之间可能存在不同的时区。它不适用于世界各地的多个用户。这个会有所帮助:

How to ignore user's time zone and force Date() use specific time zone

此外,如果您立即将时间戳附加到DOM,然后再次从服务器获取日期,则无论如何都会有所不同,因为您必须考虑请求到达服务器所需的时间。 / p>