el-datepicker动态禁用日期

需求:限制只能选择点击的日期前后6个月的数据。

比如,我点击了2021年6月1号,只有2020年12月1号到2021年6月1号的区间,以及2021年6月1号到2022年1月1号的日期可以选择

在这里插入图片描述
第一步:给el-date-picker加上一个属性picker-options,如下

<el-date-picker :editable="false" :clearable="false" size="small" type="daterange" :picker-options="pickerOptions" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" align="right" value-format="yyyyMMdd" >
</el-date-picker>

第二步:在pick-options中加上onPick回调函数,disabledDate属性,如下

data() {
	return {
		startDate: '',
		endDate: ''
	}
},
pickerOptions: {
    onPick: (obj) => {
       this.startDate = new Date(obj.minDate).getTime(); //获取你第一次点击的日期
       this.endDate = new Date(obj.maxDate).getTime();//获取你第二次点击的日期
    },
    disabledDate: (time) => {
       if (this.startDate && !this.endDate) {
         const timeZone = 182 * 24 * 3600 * 1000; //6个月
         let maxTime = this.startDate + timeZone; 
         let minTime = this.startDate - timeZone;
         let limitDate =
           time.getTime() > maxTime ||
           time.getTime() < minTime
         return limitDate;
       } else {
         return ''
       }
    }
 }

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