前言
需求:需要显示某月份往前推一年或者半年的费用情况,显示到柱形图上,后台接口只返回有数据的年份,这就需要前端拿全部月份数组去比对并显示。
开始
上代码:
// date:选择的月份,比如:'2024-04',
//n:半年或者1年,值分别为6或者12
function getMonthArr(date, n) {
let dateArr = [];
let year = date.split('-')[0];
let month = date.split('-')[1];
let m = Number(month);
if(n < m) {
//1.n<month的情况
for(let i=m-n+1;i<=month;i++){
let m1 = i < 10 ? "0" + i : i;
dateArr.push(year + '-' + m1);
}
} else {
//2.n>month的情况
for(let i=(12-(n-m)+1);i<=12;i++){
let m1 = i < 10 ? "0" + i : i;
dateArr.push((year-1) + '-' + m1);
}
for(let i=1;i<=m;i++){
let m1 = i < 10 ? "0" + i : i;
dateArr.push(year + '-' + m1);
}
}
return dateArr;
}
console.log(getMonthArr('2024-07',6));
//(6) ["2024-02", "2024-03", "2024-04", "2024-05", "2024-06", "2024-07"]
console.log(getMonthArr('2024-01',12));
//["2023-02", "2023-03", "2023-04", "2023-05", "2023-06", "2023-07", "2023-08", "2023-09", "2023-10", "2023-11", "2023-12", "2024-01"]