需求背景:
需要所选时间不得小于当前时间,当前好像只能限制到日期,只能限制到时和分,不能精确到秒
相关代码
html:
<el-date-picker
v-model="dialogForm.splitTime"
type="datetime"
value-format='yyyy-MM-dd HH:mm:ss'
:picker-options="pickerOptions"
format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择预约分裂时间">
</el-date-picker>
data
pickerOptions: {
disabledDate(time) {
return time.getTime() < Date.now() - 8.64e7 // 当前时间的前一天
},
selectableRange: ""
},
created
this.dialogForm.splitTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
const currentTime = dayjs().format('HH:mm:ss');
this.pickerOptions.selectableRange = `${currentTime} - 23:59:59`
演示
方案思路:1. 当打开弹框时,获取当前时间的时分秒,对selectableRange初始化赋值;
2. 当选择的日期大于当前日期时。对selectableRange放开限制
问题点:可以将时分禁用,但是不能将秒禁用,之前的秒级别仍然可以选择。
可以参考这篇文章实现
https://blog.csdn.net/MFWSCQ/article/details/123038308