JS 在已知的日期基础之上加N个月
已知日期:2013-07-31 加12个月 3个月 1个月 得到相应的日期
求大牛怎么写JS代码?
[解决办法]
function dateAdd(date,strInterval, Number) { //参数分别为日期对象,增加的类型,增加的数量
var dtTmp = date;
switch (strInterval) {
case 'second':
case 's' :
return new Date(Date.parse(dtTmp) + (1000 * Number));
case 'minute':
case 'n' :
return new Date(Date.parse(dtTmp) + (60000 * Number));
case 'hour':
case 'h' :
return new Date(Date.parse(dtTmp) + (3600000 * Number));
case 'day':
case 'd' :
return new Date(Date.parse(dtTmp) + (86400000 * Number));
case 'week':
case 'w' :
return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));
case 'month':
case 'm' :
return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
case 'year':
case 'y' :
return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
}
}
[解决办法]
var yy = 2013, mm = 7, dd = 31;
alert(new Date( yy, mm-1+12, dd).toLocaleString());
alert(new Date( yy, mm-1+3, dd).toLocaleString());
alert(new Date( yy, mm-1+1, dd).toLocaleString());
[解决办法]
[解决办法]
那就要看你如何规定的了,多出来的天数是添加到下个月中,还是忽略掉?
[解决办法]
var date = new Date('2013-07-31');
date.setMonth(date.getMonth() + 1);
[解决办法]
这个应该是你要的了, 考虑到了天数问题
function addMoth(d,m){
var ds=d.split('-'),_d=ds[2]-0;
var nextM=new Date( ds[0],ds[1]-1+m+1, 0 );
var max=nextM.getDate();
d=new Date( ds[0],ds[1]-1+m,_d>max? max:_d );
return d.toLocaleDateString().match(/\d+/g).join('-')
}
alert( addMoth('2013-07-31 ',7) )