Node.js服务器打印的静态日期比实际值小几个小时

时间:2012-12-10 23:16:26

标签: javascript node.js datetime timezone

尝试从heroku服务器上的节点应用程序打印时间。打印出来的时间不匹配......

这是一个6小时的差异(我们在GMT-6中),所以这是一个时间问题是有意义的。但是,我之间存在冲突,因为打印的日期是以下列格式创建的:

var time = (new Date('2012', '12', '10')).valueOf();
console.log(time);

提供1355097600000而不是1355119200000

静态创建的日期应该始终是静态的吗?无论您在哪个时区,2012/12/10的开头都应与1970/01/01的长度相同。

1 个答案:

答案 0 :(得分:1)

Javascript根据浏览器或节点服务器的时区创建日期。要获取静态日期,您需要传入您希望创建日期的时区。示例:

var time = (new Date('December, 2012 12:00:00 pm GMT')).valueOf(); 
console.log(time)

返回

1354363200000

我的时区是PST,所以如果我这样做

var time = (new Date('December, 2012 12:00:00 pm PST')).valueOf(); 
console.log(time)

它返回相同的值(1354392000000),就好像我已经完成

一样
var time = (new Date('December, 2012 12:00:00 pm')).valueOf(); 
console.log(time)