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());
}
}
[解决办法]
这个应该是你要的了, 考虑到了天数问题
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) )