需求: 給定一個日期,獲取該日期先後 7天 的日期
// 獲取當前日期先後多少天的日期,以前多少天傳正數,後面多少天傳負數,今天傳0,
// num爲傳入的數字, time爲傳入的指定日期,若是time不傳,則默認爲當前時間web
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 會輸出以下svg
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)