欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

VUE+Eelementui 日期时间选择器禁用当前日期之前的日期时间

程序员文章站 2022-07-02 20:23:47
...

form表单内引用

picker-options 当前时间日期选择器特有的选项参考下表
  <el-form-item label="开播时间" prop="date">
        <el-date-picker
          type="datetime"
          v-model="form.date"
          placeholder="选择日期"
          :picker-options="{
              disabledDate(time) {
               return time.getTime() < Date.now() - 8.64e7;
              },
              selectableRange: startTimeRange
            }"
          value-format="yyyy-MM-dd HH:mm:ss"
        ></el-date-picker>
      </el-form-item>

 data 定义数据:

  form: {

date:''

}

watch监听

 watch: {
    'form.date': {
      handler(newValue, oldValue) {
        if (newValue) {
          let dateTime = ''
          const yy = new Date().getFullYear()
          const mm = new Date().getMonth() + 1
          const dd = new Date().getDate()
           const d=dd < 10 ? '0' + dd : dd
          const hh = new Date().getHours()
          const mz = mm < 10 ? '0' + mm : mm
          const mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes()
            : new Date().getMinutes()
          const ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds()
            : new Date().getSeconds()
          dateTime = yy + '-' + mz + '-' + d + ' ' + hh + ':' + mf + ':' + ss
          console.log(dateTime, 'dateTime')
          console.log(newValue, 'newValue')
          const dt = dateTime.split(' ')
          let st = ''
          if (newValue.split(' ')[0] === dt[0]) {
            // 是今天,选择 的时间开始为此刻的时分秒
            st = dt[1]
            console.log( dt[1]);
            
          } else {
            // 明天及以后从0时开始
            st = '00:00:00'
          }
          this.startTimeRange = st + ' - 23:59:59'
          console.log(this.startTimeRange, 'startTimeRange')
          // 例如:如果今天此刻时间为10:41:40 则选择时间范围为: 10:41:40 - 23:59:59
          // 否则为:00:00:00- 23:59:59
        }
      }
    }
  },