Javascript Date() 初始化格式错误

Javascript Date() initialization in bad format

我正在写 javascript 多人游戏,我的服务器代码在 nodejs 中。 我需要在服务器和客户端之间同步时间。

在服务器端我调用 Date() 并将日期字符串发送给客户端。 客户收到:

Tue Apr 28 2015 15:37:01 GMT+0000 (UTC)

初始化后:

var time = Date("Tue Apr 28 2015 15:37:01 GMT+0000 (UTC)");

设置为本地时间的时间变量为:

Tue Apr 28 2015 17:37:03 GMT+0200 (CEST).

如果我 运行 我的服务器在本地,那么时间导入正确。 不同时间格式的问题,CEST vs UTC?

感谢您的回答

在 JS 中有多种处理时区的方法。

设置整个系统的 UTC 时间

使用.setUTCHours() Here你可以看看怎么用

创建新的 UTC 日期

new Date(Date.UTC(year, month, day, hour, minute, second))

Date.UTC说明here

手动更正时区差异

var d = new Date(xiYear, xiMonth, xiDate);
d.setTime( d.getTime() + d.getTimezoneOffset()*60*1000 );

您可以从服务器以毫秒格式发送日期,然后将毫秒转换为所需格式的日期。

服务器:

var time = new Date().getTime();

克莱因特:

var date = new Date(time);