根据开始时间和结束时间均分成时间段

361 阅读1分钟

根据开始时间和结束时间均分成时间段

我就想记录一下代码片段,你给我整什么不满50字不让发布啊!真是难受啊

/**
     *
     * @param startDate
     * @param endDate
     * @param space 默认1分钟
     * @returns {*[]}
     */
    getDateArray(startDate, endDate, space) {
      if (!endDate) {
        endDate = new Date();
      }
      if (!startDate) {
        startDate = new Date(new Date().getTime() - 1 * 60 * 60 * 1000);
      }
      if (!space) {
        space = 60 * 1000;
      } else {
        space = space * 1000 *60;
      }
      if(new Date(endDate).getTime() === new Date(startDate).getTime()){
        return ['00:00', '04:00', '08:00', '12:00', '16:00', '20:00', '次日00:00']
      }else{
        var endTime = new Date(endDate).getTime();
        var startTime = new Date(startDate).getTime();
      }
      var mod = endTime - startTime;
      var dateArray = [];
      // 加入结束时间
      let a = new Date();
      a.setTime(endTime);
      a = this.nowtime(a);
      dateArray.push(a);
      while (mod - space >= space) {
        var d = new Date();
        d.setTime(endTime - space);
        d = this.nowtime(d);
        dateArray.push(d);
        mod = mod - space;
        endTime = endTime - space;
      }
      // 加入开始时间
      a = new Date();
      a.setTime(startTime);
      a = this.nowtime(a);
      dateArray.push(a);
      return dateArray.reverse();
    },
    nowtime(dt) {
      return (
        dt.getFullYear() +
        "-" +
        (dt.getMonth() + 1 < 10
          ? "0" + (dt.getMonth() + 1)
          : dt.getMonth() + 1) +
        "-" +
        (dt.getDate() < 10 ? "0" + dt.getDate() : dt.getDate())
      );
    },