js 獲取兩日期間所有日期

我們在做圖表類使用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);
})

在這裏插入圖片描述

發佈了112 篇原創文章 · 獲贊 123 · 訪問量 43萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章