Element UI disableddate设置动态时间,时间段,或者当前之前不可选,当天之后不可选

在项目中使用Element UI 日历控件,本人遇到的场景是某个时间到当天时间可选,其他不可选,代码如下:
dom:

 
 

下面用到计算属性,动态获取时间并刷新日历

computed: {  
    pickerOptions1() {
       var _this=this;
       return {
         disabledDate(time) {
           var time1 = _this.startTime;// 动态起始时间 ,这个时间是已经得到的时间戳
           return time.getTime() > Date.now() || time.getTime() < time1;
         }
       }
     }
  },
  也可以设置某个时间作为起始时间
	data () {
	    return {
	    	pickerOptions1: {
	     		disabledDate(time) {
			        var date = new Date('2019-05-24 23:06:31');         
			        var time1 = date.getTime();//得到时间戳
	                return time.getTime() > Date.now() || time.getTime() < time1;
	        	 },
	        }, 
	     }
	 }

还有其他场景,如当天时间的前三个月可选,其他不可选

data (){
   return {
       pickerOptions1: {
          disabledDate(time) {
            let curDate = (new Date()).getTime();
            let three = 90 * 24 * 3600 * 1000;
            let threeMonths = curDate - three;
            return time.getTime() > Date.now() || time.getTime() < threeMonths;;
          }
        },  
   }     
} 

设置当天之后的时间可选

  
        
...

    data() {
      return {
        pickerOptions1: {
         disabledDate(time) {
            return time.getTime() < Date.now() - 8.64e7;//当天之后的时间可选
            return time.getTime() > Date.now() - 8.64e7;//当天之前的时间可选
            return time.getTime() > Date.now() ;//当天之前的时间可选---不包括当天
          },
        }       
      }
    }

这种方式是实现了,但是这个方法不是很好;这个做法内部是循环遍历所有日期 性能很差。如果大家有什么好的方法欢迎评论哦!一起加油!

你可能感兴趣的:(日期控件,element,vue,time)