需求: 給定一個日期,獲取該日期前后 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)