不能简单的在 getDate() + 30,会造成日期与实际月份天数不符(可能超过31天,可能出现负数)
- 方法一
var date1 = new Date();
console.log(date1); // Thu Jul 30 2020 11:03:24 GMT+0800 (中国标准时间)
console.log(date1.getDate()); // 30
var date2 = new Date(date1);
date2.setDate(date1.getDate() + 30);
console.log(date2); // Sat Aug 29 2020 11:03:24 GMT+0800 (中国标准时间)
var newy = date2.getFullYear(); // 年
var newm = date2.getMonth() + 1; // 月
var newd = date2.getDate(); // 日
var neww = date2.getDay(); // 星期
var str = newy + '年' + newm + '月' + newd + '日 星期' + neww;
console.log(str); // 2020年8月29日 星期6
- 方法二
// 加一天
var ad = new Date('2020-08-31');
ad.setTime(ad.getTime() + 24 * 60 * 60 * 1000);
var s1 = ad.getFullYear() + "-" + (ad.getMonth() + 1) + "-" + ad.getDate();
console.log(s1); // 2020-9-1
// 减一天
var sd = new Date('2020-08-01');
sd.setTime(sd.getTime() - 24 * 60 * 60 * 1000);
var s2 = sd.getFullYear() + "-" + (sd.getMonth() + 1) + "-" + sd.getDate();
console.log(s2); // 2020-7-31