#elementUi 日期时间选择器限制时间范围,选择此刻之后的时间,包含时分秒

  • Post author:
  • Post category:其他

elementUI 时间选择器限制只能选择此刻之后的时间,包括时分秒(借鉴并修改)

根据产品的需求,需要对生效时间进行限制,限制到时间点,百度了好多文章之后,还是使用elementUI时间选择器自带的属性picker-options,二话不说先看效果图

*![这里是限制的当前日期和当前时间点,当前时间点之前的不能选择

#直接上代码吧~~~~
需要引入moment.js进行时间格式的转换

cnpm install moment --save
//在main.js文件中引入
import moment from "moment";
Vue.prototype.$moment = moment;
<el-form-item label="生效时间:" prop="time">
  <el-date-picker v-model="addStockForm.time" type="datetime"      placeholder="选择生效时间" :picker-options="pickerOption" value-format="yyyy-MM-dd HH:mm:ss" :editable="false"  @change="handler">
  </el-date-picker>
</el-form-item>
<script>
export default {
data(){
  return{
    addStockForm: {
        time:''
      },
      pickerOption: {
        disabledDate(time) {
          return time.getTime() < Date.now() - 8.64e7;
        },
         selectableRange:"00:00:00 - 23:59:59",
      },
    }
  },
  watch:{
  "addStockForm.time":{ //需要对绑定的时间进行监听
    handler(newValue, oldValue) {
          if (newValue) {
            let date = new Date();//当前时间
            let min = date.getMinutes();//当前时间的分
            date.setMinutes(min);
            let nowDate = this.$moment(date).format("HH:mm:ss");//当前时分秒
            let st = "";
            if (this.$moment(date).format("yyyy-MM-DD") === this.$moment(newValue).format("yyyy-MM-DD")) {
              let hh1 = this.$moment(newValue).format("HH:mm:ss")
              if(hh1 <= nowDate) {
                this.addStockForm.time = this.$moment(date).format("yyyy-MM-DD HH:mm:ss");
              }
              st = nowDate;
            } else {
              st = "00:00:00";
            }
            this.pickerOption.selectableRange = st + "-23:59:59";
            this.pickerOption = this.pickerOption;
          }
        },
        deep: true,
        immediate: true,
      }
  },
}
<script/>


版权声明:本文为weixin_49072460原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。