setMonth()bug

最近在做一个需求,是获取当前月份的前五个月,我就想到了一个方法,就是是用setMonth()方法,把它设置为想要的月份

for(var i=0;i<5;i++){

var dd = new Date();

dd.setMonth(dd.getMonth()-i);//获取AddDayCount天后的日期,

vary = dd.getFullYear();

varm = dd.getMonth()+1;//获取当前月份的日期

vard =newDate(y,m,0).getDate();

if(m<10){

m ="0"+m;

}

if(d<10){

d ="0"+d;

}

this.yearAndMonth= y.toString()+"-"+m.toString();

this.startDateStr= y.toString()+"-"+m.toString()+"-01";

this.endDateStr= y.toString()+"-"+m.toString()+"-"+d.toString();

this.arrList.push([this.yearAndMonth,this.startDateStr,this.endDateStr]);

}

问题就出现在了黑色加粗的部分,setMonth(),第一个参数是月份,第二个为天数,当我们不设置后面的天数的时候,前面设置的月份,就会自动顺延,这个是setMonth()的bug,不过如何避免这种问题呢,这就需要在setMonth()后面增加一个1,设为第一天就好了

你可能感兴趣的:(setMonth()bug)