Javascriptdate不一致

在我的节点服务器上,我以时代格式(1970年1月1日以来的毫秒)从客户端接收时间值。 我把它提供给Date()对象并打印它如下所示:

 var d = new Date(epochTime); var year = d.getFullYear(); var mo = d.getMonth(); var day = d.getDay(); console.log("ISO:" + d.toISOString() + " year:" + year + " mo:" + mo + " day:" + day); 

现在,我从date对象中得到奇怪的不一致。 例如,对于“1437386620207.58”的值 – 这是以上console.log打印:

 ISO:2015-07-20T10:03:40.207Z year:2015 mo:6 day:1 

咦? 为什么这些date如此不同?

你的代码中有两个问题:

  • 在JavaScript中,月份是基于零的,即1月份为0 ,12月份为11月份。
  • getDay()返回星期几。 这应该是getDate()而不是返回一个月的一天。