node.js:奇怪的setUTCMonth结果

时间:2013-03-28 15:08:56

标签: javascript node.js date

在最新的0.8和0.10版本的节点中运行此代码:

> date = new Date(2013, 0, 1)
Tue Jan 01 2013 00:00:00 GMT+0200 (EET)
> date.setUTCMonth(5)
1341180000000
> date
Mon Jul 02 2012 01:00:00 GMT+0300 (EEST)

在调用.setUTCMonth后,年份从2013年改为2012年。为什么会这样?

1 个答案:

答案 0 :(得分:4)

  

在调用.setUTCMonth之后,这一年从2013年改为2012年。

不,它没有。

您当地的时区是GMT+0200 - 也就是说,您看到的日期Tue Jan 01 2013 00:00:00 GMT+0200实际上是格林尼治标准时间提前两小时,所以它是2012年12月31日,22 :00:00

日期的月份更改为5会使您的修改日期最终在2012年7月结束。