Javascript Date()初始化格式错误

时间:2015-04-28 15:46:48

标签: javascript node.js datetime synchronization

我正在编写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).

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

感谢您的回答

2 个答案:

答案 0 :(得分:1)

有多种方法可以处理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 );

答案 1 :(得分:0)

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

服务器:

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

Cleint:

var date = new Date(time);