js,vue, 获取指定时间的前、后多少天的日期


需求:  给定一个日期,获取该日期前后 7天 的日期

//  获取当前日期前后多少天的日期,之前多少天传正数,后面多少天传负数,今天传0, //  num为传入的数字, time为传入的指定日期,如果time不传,则默认为当前时间           getBeforeDate(num, time) {             let n = num;             let d = '';             if(time) {                 d = new Date(time);             } else {                 d = new Date();             }             let year = d.getFullYear();             let mon = d.getMonth() + 1;             let day = d.getDate();             if(day <= n) {                 if(mon > 1) {                     mon = mon - 1;                 } else {                     year = year - 1;                     mon = 12;                 }             }             d.setDate(d.getDate() - n);             year = d.getFullYear();             mon = d.getMonth() + 1;             day = d.getDate();             let s = year + "-" + (mon < 10 ? ('0' + mon) : mon) + "-" + (day < 10 ? ('0' + day) : day);             return s;         }  

 当循环输入0 ~ 7, -6 ~0 ,并且 time 传入 ‘2019-10-31’, arr 、arr2  会输出如下

  let arr = [];         for(let i=0; i<7; i++) {             arr.push(this.getBeforeDate(i, '2019-10-31'))         }
        let arr2 = [];         for(let i=-6; i<1; i++) {             arr2.push(this.getBeforeDate(i, '2019-10-31'))         }           console.log(arr)         console.log(arr2)