vuejs实现已知开始时间和结束时间 计算出中间的所有日期

1、已知开始时间和结束时间 计算出中间的所有日期
  (要求:①开始时间和结束时间的时间差在一天内返回的值为间隔1个小时的日期(时间入参格式为yyyy-MM-dd-HH);
      ②开始时间和结束时间的时间差在7天内返回的值为间隔1天的日期(时间入参格式为yyyy-MM-dd);
      ③开始时间和结束时间的时间差大于7天返回的值为间隔7天的日期(时间入参格式为yyyy-MM-dd)。
          )
  getAllDate(start, end , type){
            let format = (time) => {
                let ymd = ''
                let mouth = (time.getMonth() + 1)
                let day = time.getDate() >= 10 ? time.getDate() : ('0' + time.getDate());
                let hour = time.getHours() >= 10 ? time.getHours() : ('0' + time.getHours())
                ymd += time.getFullYear() + '-' // 获取年份。
                ymd += mouth + '-' // 获取月份。
                ymd += day // 获取日。
                if(type === 1){
                    ymd += ' ' + hour + ':00' // 获取小时。
                }
                //m.df格式
                return ymd // 返回日期。
            }
            let dateArr = []
            let startArr = start.split('-')
            let endArr = end.split('-')
            let db = new Date()
            db.setUTCFullYear(startArr[0], startArr[1] - 1, startArr[2])
            if(type === 1){
                db.setHours(startArr[3])
            }else{
                db.setHours(0,0,0,0)
            }
            let de = new Date()
            de.setUTCFullYear(endArr[0], endArr[1] - 1, endArr[2])
            if(type === 1){
                de.setHours(Number(endArr[3]) + 1)
            }else{
                de.setHours(0,0,0,0)
            }
            let unixDb = db.getTime()
            let unixDe = de.getTime()
            let stamp
            let oneDay = null;
            if(type === 1){
                oneDay = 60 * 60 * 1000;
            }else if(type === 2){
               oneDay = 24 * 60 * 60 * 1000;
            }else if(type === 3){
                oneDay = 24 * 60 * 60 * 1000 * 7;
            }
            for (stamp = unixDb; stamp <= unixDe;) {
                dateArr.push(format(new Date(parseInt(stamp))))
                stamp = stamp + oneDay
            }
            return dateArr
        },
posted @ 2022-07-07 15:15  我爱敲代码0000  阅读(2123)  评论(0编辑  收藏  举报