业务场景:需要限制日期时间选择器可选择的日期,有两种模式,
一种是已知范围,只能选已知范围内的日期,
另一种是知道最近天数,只能选今天往前的天数内的日期,超出不能选。
<el-date-picker
v-model="formData.getTime"
:disabledDate="disabledDateOptions"
type="datetime" :clearable="false"
@change="changeDateTime"
format='YYYY-MM-DD HH:mm'
value-format="YYYY-MM-DD HH:mm:ss"
placeholder="采集时间"/>
disabledDateOptions: (date) => {
if (state.modeChoice == '1') {
// 时间范围模式 例如在"2023-11-16"到"2024-01-04"这段期间可以选,否则不可以选
const startDate = new Date(moment("2023-11-16").format('YYYY-MM-DD 00:00:00'));
const endDate = new Date(moment("2024-01-04").format('YYYY-MM-DD 23:59:59'));
return date.getTime() < startDate.getTime() || date.getTime() > endDate.getTime();
} else {
// 最近天数模式 例如state.timedays = 3, 那就是从今天起3天前的可以选,其他日期不能选
return date.getTime() > Date.now() || date.getTime() < Date.now() - 24 * 60 * 60 * 1000 * state.timedays
}
}