有人能解释下面输出中的差异吗?我的代码如下:
function addDaysToDate( theDate, days ) {
var thisDate = new Date( theDate.getTime() + days*24*60*60*1000 );
return new Date( thisDate );
}
var dt = new Date( '5/20/2014' );
for (i=0;i<6;i++) {
var dt = addDaysToDate( dt, 7 );
console.log( dt + '---' + dt.getMonth() + '/' + dt.getDate() + '/' + dt.getYear() );
}
由此产生的输出是:
Tue May 27 00:00:00 PDT 2014---4/27/2014
Tue Jun 3 00:00:00 PDT 2014---5/3/2014
Tue Jun 10 00:00:00 PDT 2014---5/10/2014
Tue Jun 17 00:00:00 PDT 2014---5/17/2014
Tue Jun 24 00:00:00 PDT 2014---5/24/2014
Tue Jul 1 00:00:00 PDT 2014---6/1/2014
我已多次看过这个问题了,对于我的生活,我无法理解为什么dt.getMonth()显示当月之前的一个月。我已在Chrome和IE上确认了相同的行为。
答案 0 :(得分:3)
getMonth返回的数字是从零开始的,所以1月是0,2月是1,依此类推,直到12月11日。来自MDN Documentation on Date:
月
表示月份的整数值,从1月的0开始到12月的11。
和
<强> Date.prototype.getMonth()强>
根据当地时间返回指定日期的月份(0-11)。