开始时间不能小于当前时间,结束时间需大于开始时间,开始时间到结束时间的范围不能大于30天

开始时间不能小于当前时间,结束时间需大于开始时间,开始时间到结束时间的范围不能大于30天

<div style="width:100%;">
                    <!-- :disabled="isView" -->
                   <el-date-picker
                    style="width:100%;"
                    size="small"
                    v-model="swipeItem.time"
                    type="datetimerange"
                    :picker-options="pickerOptions"
                    range-separator=""
                    start-placeholder="开始日期"
                    end-placeholder="结束日期"
                   >
                  </el-date-picker>

                </div>
 private selectDate='';
 private pickerOptions={
        onPick: ({ maxDate, minDate }) => {
          this.selectDate = minDate.getTime()
          if (maxDate) {
            this.selectDate = ''
          }
        },
        disabledDate: time => {
          //time.getTime()获取的是时间戳
          // 当前时间往前30天可选
          // return (
          // time.getTime() > Date.now() ||
          // time.getTime() < Date.now() - 30 * 24 * 60 * 60 * 1000
          // )
          // 只能选择30天的范围且不能大于当前日期
          debugger
          if (this.selectDate !== '') {
            let one = 29 * 24 * 3600 * 1000 //30天
            // const minTime = this.selectDate - one
            let minTime = this.selectDate 
            let maxTime = this.selectDate + one
            if (Number(maxTime) < Number(Date.now())) {
              debugger
              return (
                time.getTime() < minTime ||
                time.getTime() >
                  new Date(new Date().toLocaleDateString()).getTime()
              )
            } else {
              debugger
              return time.getTime() < minTime || time.getTime() > maxTime
            }
          } else {
            return (
              time.getTime() <
              new Date(new Date().toLocaleDateString()).getTime()
            )
          }
        }
      }

 

posted @ 2022-09-05 14:42  shuihanxiao  阅读(923)  评论(0编辑  收藏  举报