js 获取两日期间所有日期
程序员文章站
2022-05-27 16:06:12
...
我们在做图表类使用dates日期插件的时候,有时候从后台获取的日期往往是有数据的天数,那么其他没有数据的日期就需要前端进行补全咯!!!
// 获取所有日期
getBetweenDateList(start,end){
let result = [];
let beginDay = start.split("-");
let endDay = end.split("-");
let diffDay = new Date();
let dateList = new Array;
let i = 0;
diffDay.setDate(beginDay[2]);
diffDay.setMonth(beginDay[1]-1);
diffDay.setFullYear(beginDay[0]);
result.push(start);
while(i == 0){
let countDay = diffDay.getTime() + 24 * 60 * 60 * 1000;
diffDay.setTime(countDay);
dateList[2] = diffDay.getDate();
dateList[1] = diffDay.getMonth() + 1;
dateList[0] = diffDay.getFullYear();
if(String(dateList[1]).length == 1){dateList[1] = "0"+dateList[1]};
if(String(dateList[2]).length == 1){dateList[2] = "0"+dateList[2]};
result.push(dateList[0]+"-"+dateList[1]+"-"+dateList[2]);
if(dateList[0] == endDay[0] && dateList[1] == endDay[1] && dateList[2] == endDay[2]){ i = 1;
}
};
console.log(result);
return result;
},
let getBetweenDateList = this.getBetweenDateList('2020-01-01', '2020-01-10)
再将获取的数据中日期和得到的日期数组getBetweenDateList 进行去重整合得:
getBetweenDateList.forEach(i => {
let dateStr = i, totalFee = 0, refundFee = 0;
for (var item in body.data.data) { // body.data.data接口返回的数组列表
if (body.data.data[item].dateStr == i) {
console.log('i', i)
dateStr = body.data.data[item].dateStr;
totalFee = body.data.data[item].totalFee;
refundFee = body.data.data[item].refundFee;
}
};
this.echartsLineOptions.lineDate.push(dateStr);
this.echartsLineOptions.lineValue.push(totalFee/100);
this.echartsLineOptions.lineValue_.push(refundFee/100);
})
上一篇: js 计算日期天数、获取日期数据