失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > vue【element ui】el-date-picker 日期选择器控件 限制可选的开始时间和结束时间

vue【element ui】el-date-picker 日期选择器控件 限制可选的开始时间和结束时间

时间:2024-06-30 02:38:09

相关推荐

vue【element ui】el-date-picker 日期选择器控件 限制可选的开始时间和结束时间

项目场景:

总结一下日期控件实现开始日期、结束日期的选择范围限制,以便更符合实际情况。

需求:

1、开始时间和结束时间都不能选当前日期之后的时间。(当前时间:5月16日)

2、先选开始时间的话,结束时间是在开始时间的后一周内选择,也就是不能选开始时间之前的日期并且对开始时间之后的日期也加了一个限制。

3、先选结束时间的话,开始时间也是在结束时间的前一周内选择,也就是不能选结束时间之后的日期并且对结束时间之前的日期也加了一个限制。

效果如图

实现代码

vue template 代码:

<el-form-item label="开始时间" required><el-date-picker:picker-options="pickerOptionsStart"clearablesize="small"style="width: 200px"v-model="pullForm.startTime"format="yyyy-MM-dd HH:mm:ss"value-format="yyyy-MM-dd HH:mm:ss"type="datetime"placeholder="选择开始时间"></el-date-picker></el-form-item><el-form-item label="结束时间" required><el-date-picker:picker-options="pickerOptionsEnd"clearablesize="small"style="width: 200px"v-model="pullForm.endTime"format="yyyy-MM-dd HH:mm:ss"value-format="yyyy-MM-dd HH:mm:ss"type="datetime"placeholder="选择结束时间"></el-date-picker></el-form-item>}

script 代码:

data() {return {//时间限制,符合日期先后顺序的实际情况pickerOptionsStart: {disabledDate: (time) => {let sevenDays = 6 * 24 * 3600 * 1000; //6天if (this.pullForm.endTime) {return (time.getTime() > Date.now() - 8.64e6 ||//开始日期要在选择的结束日期之前,大于结束时间的日期不能选time.getTime() > new Date(this.pullForm.endTime).getTime() ||//先选结束时间,在结束时间七天之前的不能选(因为包括自身这一天,所以是减去六天)time.getTime() < new Date(this.pullForm.endTime).getTime() - sevenDays);}return time.getTime() > Date.now() - 8.64e6; //今天及之前}},pickerOptionsEnd: {disabledDate: (time) => {let sevenDays = 6 * 24 * 3600 * 1000;if (this.pullForm.startTime) {return (time.getTime() > Date.now() - 8.64e6 ||//结束日期要在选择的开始日期之后,小于开始时间的日期不能选time.getTime() < new Date(this.pullForm.startTime).getTime() ||//先选开始时间,在开始时间七天之后的不能选(因为包括自身这一天,所以是加上六天)time.getTime() > new Date(this.pullForm.startTime).getTime() + sevenDays);}return time.getTime() > Date.now() - 8.64e6; //今天及之前}},}}

总结:

我参考了下面的两篇文章:

文章1:vue element-ui date-picker 日期选择器控件 设置时间范围 限制可选的开始时间和结束时间

文章2:ElementUi 中 日期时间插件DatePicker 限制结束时间大于开始时间且开始时间小于此刻

文章1里面加完那个时间限制不生效,于是我找到了文章二,改了之后就可以用了。(仅仅是弱鸡记录一下,欢迎大家一起交流)

如果觉得《vue【element ui】el-date-picker 日期选择器控件 限制可选的开始时间和结束时间》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。