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

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

 <el-date-picker
      v-model="ruleForm1.date"
      type="date"
      value-format="yyyy-MM-dd"
      placeholder="选择日期"
      :picker-options="pickerOptions1"    //这里设置时间段,动态获取
      >
 </el-date-picker>

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

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;;
          }
        },  
   }     
} 

设置当天之后的时间可选

  <el-date-picker
          style="width:195px"
          value-format="yyyy-MM-dd"
          v-model="form.start_date"
          type="date"
          :picker-options="pickerOptions1"
          placeholder="选择日期">
        </el-date-picker>
...

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

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

  • 11
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值