获取N个月后的日期:
var months=6;//几个月后
var effectDate='2018年8月31日';//任意时间
var time=effectDate.replace(/年/g,"-").replace(/月/g,"-").replace(/日/g,"");
var newTime=monthChange(time,months);//获取的几个月后时间
console.log(newTime);
/*获取n个自然月后的日期
* date:当前任意日期
* num:月数
* */
function monthChange(date,num) {
var newDate=new Date(date);
var year = newDate.getFullYear();
var month = newDate.getMonth() + num;//获取当前月份的日期
if (month>11){
for(var i=0,j=Math.floor(month/12);i<j;i++){
year++;
month -= 12;
}
}
month=parseInt(month+1);
if(month<10){
month="0"+month;
}
var date2=new Date(year,month,0);//新的年月
var day1=newDate.getDate();
var day2=date2.getDate();
if(day1>day2){ //防止+6月后没有31天
day1=day2;
}
return year + '年' + month + '月' + day1+ '日';
}
获取N天后的日期:
var date='2018-09-09';//当前时间或选取时间
var n=7;//选取时间要向前推进的天数
var date1 = new Date(date);
date1.setDate(date.getDate() - n);//获取七天前date
let year1 = date1.getFullYear();
let month1 = ((date1.getMonth() + 1 < 10 ? '0' + (date1.getMonth() + 1) : date1.getMonth() + 1));
let myDate1 = (date1.getDate() < 10 ? '0' + date1.getDate() : date1.getDate());
let h1 = (date1.getHours() < 10 ? '0' + date1.getHours() : date1.getHours()) + ':00:00';
let startDate = year1 + "-" + month1 + "-" + myDate1 + " " + h1;
console.log(startDate);