element UI时间日期选择器控制只能选今天此刻半小时后的时间(可自己设置)

1.使用参数picker-options
建议使用参数time-arrow-control,用箭头进行选择(用鼠标滚轮操作稳定性很差)
disabledDate :控制只能选择今天及以后的日期
selectableRange :控制选择的时间段。如果是今天,则时间从下个小时开始,否则从0时开始

data(){
	return{
	      startTimeRange: ''"
	}
}

<el-date-picker v-model="ruleForm.date1" type="datetime"    value-format="yyyy-MM-dd HH:mm:ss"
               placeholder="选择日期时间" :picker-options="{
                 disabledDate: time => {
                   return time.getTime() < Date.now() - 3600 * 1000 * 24
                 },
                 selectableRange: startTimeRange
               }" @focus="focus">
</el-date-picker>

2.使用vue的watch监听
因为是对对象中的一个属性进行监听所以,要写成’ruleForm.date1’

watch: {
    'ruleForm.date1': {
      handler(newValue, oldValue) {
        if (newValue) {
          let time = new Date();
          let yy = time.getFullYear();
          let mm = time.getMonth() + 1;
          let dd = time.getDate();
          let hh = time.getHours();
          let mf = time.getMinutes() < 10 ? '0' + time.getMinutes() : time.getMinutes();
          let ss = time.getSeconds() < 10 ? '0' + time.getSeconds() : time.getSeconds();
          let nowDate = yy + '-' + mm + '-' + dd + ' ' + hh + ':' + mf + ':' + ss;
          // let nowDate = this.$format(new Date(), 'YYYY-MM-DD HH:mm:ss');
          let dt = nowDate.split(" ");
          let st = '';

          if (newValue.split(" ")[1] == dt[1]) {
            let timeB = new Date().getTime() + 1800000;
            var timeC = new Date(timeB)
            let h = timeC.getHours();
            let f = timeC.getMinutes() < 10 ? '0' + timeC.getMinutes() : timeC.getMinutes();
            let s = timeC.getSeconds() < 10 ? '0' + timeC.getSeconds() : timeC.getSeconds();
            let startAtC = h + ':' + f + ':' + s;
            // 是今天,选择 的时间开始为此刻的时分秒
            st = startAtC

          }
          else {
            // 明天及以后从0时开始
            // st = '00:00:00';
            let timeB = new Date().getTime() + 1800000;
            var timeC = new Date(timeB)
            let h = timeC.getHours();
            let f = timeC.getMinutes() < 10 ? '0' + timeC.getMinutes() : timeC.getMinutes();
            let s = timeC.getSeconds() < 10 ? '0' + timeC.getSeconds() : timeC.getSeconds();
            let startAtC = h + ':' + f + ':' + s;
            // 是今天,选择 的时间开始为此刻的时分秒
            st = startAtC
          }
          this.startTimeRange = st + ' - 23:59:59';
        }
      }
    }
  }

// 时间选择限制
    focus() {
      this.$nextTick(() => {
        document
          .getElementsByClassName('el-button--text')[0]
          .setAttribute('style', 'display:none')
      })
    },
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值