我正在编写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?
感谢您的回答
答案 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);