node.js:奇怪的setUTCMonth结果

在最新的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年发生了变化。 为什么会发生?

  • 使用array.push产生未定义的
  • 浏览器JSON vs节点JSON
  • angular色2等效的renderToString
  • 使用Async嵌套主题的誓言 - 范围问题
  • 反应组件压力模块错误
  • Sails.js查询关联的值
  • 如何在node.js中保持jade中的布局状态
  • 尝试使用MeteorJS瓦特/ twit节点模块,错误:]
  • .setUTCMonth被调用后,2013年到2012年发生了变化。

    不,它没有。

    您当地的时区是GMT+0200 ,也就是说,您所看到的date为Tue Jan 01 2013 00:00:00 GMT+0200 ,实际上是格林威治时间早两个小时,所以是2012年12月31日22:00:00。

    并将date的月份更改为5 从而使修改后的date最终在2012年7月结束。