当用两个<el-date-picker>来选择开始时间和结束时间的时候,我们需要前者时间不超过后者。
我们这里使用官网的picker-options方法。当选择前者时间的时候,后者的时间选择自动受到限制,先于前者的时间变为不可选状态,当选择后者时间的时候,前者选择器在后者之后的时间为不可选状态。
代码如下:
(html部分)
<el-date-picker v-model="date1" type="date" placeholder="选择起始日期" value-format="yyyy-MM-dd" size="small" :picker-options="pickerOptions0" @change="changeDate"></el-date-picker>
<el-date-picker v-model="date2" type="date" placeholder="选择结束日期" value-format="yyyy-MM-dd" size="small" :picker-options="pickerOptions1" @change="changeDate"></el-date-picker>
js methods部分:
// 日期选择器设置,使开始时间小于结束时间,并且所选时间早于当前时间
changeDate() {
//因为date1和date2格式为 年-月-日, 所以这里先把date1和date2转换为时间戳再进行比较
let date1 = new Date(this.date1).getTime()
let date2 = new Date(this.date2).getTime()
this.pickerOptions0 = {
disabledDate: (time) => {
if (date2 != "") {
return time.getTime() > Date.now() || time.getTime() > date2;
} else {
return time.getTime() > Date.now();
}
}
}
this.pickerOptions1={
disabledDate: (time) => {
return time.getTime() < date1 || time.getTime() > Date.now();
}
}
}