js获取两个时间段内的所有日期/月份

4,376 阅读1分钟

js获取两个时间段内的所有日期

    getAllDay(start, end) { //返回 日期的数组 如 ['2020-07-10','2020-07-11']
      debugger
      let startTime = this.getDate(start);
      let endTime = this.getDate(end);
      console.log('startTime',startTime,endTime)
      let dateArr = [];
      while ((endTime.getTime() - startTime.getTime()) > 0) {
        let year = startTime.getFullYear();
        let month = (startTime.getMonth()+1).toString().length === 1 ? "0" + (parseInt(startTime.getMonth().toString(),10) + 1) : (startTime.getMonth() + 1);
        let day = startTime.getDate().toString().length === 1 ? "0" + startTime.getDate() : startTime.getDate();
        console.log('endTime',year,month,day)
        dateArr.push(year + "-" + month + "-" + day);
        startTime.setDate(startTime.getDate() + 1);
      }
      console.log('dateArr',dateArr);
      return dateArr;
},

getDate (datestr) {
    let temp = datestr.split("-");
if (temp[1] === '01') {
  temp[0] = parseInt(temp[0],10) - 1;
  temp[1] = '12';
} else {
  temp[1] = parseInt(temp[1],10) - 1;
}
//new Date()的月份入参实际都是当前值-1
let date = new Date(temp[0], temp[1], temp[2]);
return date;
},


js获取两个时间段内的所有月份数据

    //传入 YYYY-MM , YYYY-MM  (2020-09)  (2020-12)  返回 YYYY-MM 数组
    getYearAndMonth(start, end) {
      let result = [];
      let starts = start.split('-');
      let ends = end.split('-');
      let staYear = parseInt(starts[0]);
      let staMon = parseInt(starts[1]);
      let endYear = parseInt(ends[0]);
      let endMon = parseInt(ends[1]);
      while (staYear <= endYear) {
        if (staYear === endYear) {
          while (staMon < endMon) {
            staMon++;
            var str = staYear + '-'+(staMon >= 10 ? staMon : '0' + staMon);
            result.push(str);
          }
          staYear++;
        } else {
          staMon++;
          if (staMon > 12) {
            staMon = 1;
            staYear++;
          }
          let str = staYear + '-'+(staMon >= 10 ? staMon : '0' + staMon);
          result.push(str);
        }
      }
      console.log(result);
      return result;
    },