Element-UI 日期选择器-时间范围控制

DatePicker 日期选择器: Element官网地址
在日常开发中,我们会遇到一些情况,限制日期的范围的选择(例如:货物的起运时间,你限制不能选择今天之前的时间)

一、单个日期控制

代码:

<el-date-picker
       v-model="value"
       type="date"
       placeholder="选择日期"
       :picker-options="pickerOptions">
</el-date-picker>

限制不能选择今天之前的日期(可选今天的日期)

<script>
	export default {
		data (){
  			return {
       			pickerOptions: {
          			disabledDate(time) {
          	 			return time.getTime() < Date.now() - 8.64e7;
          			}
        		},  
  			 }     
		 }   
 	 }
</script> 

限制不能选择今天之前的日期(不能选今天的日期)

<script>
	export default {
		data (){
  			return {
       			pickerOptions: {
          			disabledDate(time) {
          	 			return time.getTime() < Date.now() 
          			}
        		},  
  			 }     
		 }   
 	 }
</script> 

二、两个日期联动控制

前提条件:
1、当天日期为:2019-10-24
2、两个日期选择框:起运时间、送达时间
限制情况:
1、起运时间、送达时间都不能选择今天之前的日期(即:2019-10-24至今后)
2、若起运时间选择了2019-10-25,送达时间便不能选择2019-10-25之前的日期(即:2019-10-25至今后)
3、若送达时间选择了2019-10-26,起运时间时间便不能选择今天之前的日期,且不能选择2019-10-26之后的日期(即:2019-10-24至2019-10-26)

代码:

<el-date-picker
       v-model="value"
       type="dateStart"
       placeholder="选择起运日期"
       :picker-options="pickerOptionsStart">
</el-date-picker>
<el-date-picker
       v-model="value"
       type="dateEnd"
       placeholder="选择送达日期"
       :picker-options="pickerOptionsEnd">
</el-date-picker>
<script>
	export default {
		data (){
  			return {
  				dateStart:'', // 起运日期
  				dateEnd:'', // 送达日期
       			pickerOptionsStart: {
          			disabledDate(time) {
          	 			if (this.dateEnd) {
		            		var endTime = new Date(this.dateEnd).valueOf();
		            	}
		            	var startTime =  Date.now() - 8.64e7;
		            	return time && (time.valueOf() < startTime) || time.valueOf() > endTime 
          			}
        		},  
        		pickerOptionsEnd: {
          			disabledDate(time) {
          	 			if (this.dateStart) {
          	 				// 让用户可以选择开始结束同一天
							var startTime = new Date(this.dateStart).valueOf() - 8.64e7 + 1; 
				 		} else {
				 			var startTime = Date.now() - 8.64e7;
				 		}
				 		return time && time.valueOf() < startTime
          			}
        		},
  			 }     
		 }   
 	 }
</script> 

相关文章:https://www.cnblogs.com/xjcjcsy/p/7977966.html

    原文作者:雪梅零落
    原文地址: https://blog.csdn.net/xuaner8786/article/details/79947184
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞