const updateTime = ref('2023-04-15 12:00:00');
const value1 = ref(null);
const pickDay = ref(null);
const disabledDate = (time) => {
const yesterday =
new Date(new Date().toLocaleDateString()).getTime() - 3600 * 1000 * 24;
const maxTime = new Date(yesterday).setMonth(
new Date(yesterday).getMonth(),
);
const newDate = new Date(new Date().toLocaleDateString()).getTime() - 1;
const max = newDate < maxTime ? newDate : maxTime;
if (pickDay.value) {
const minTimePick = new Date(pickDay.value.getTime()).setMonth(
new Date(yesterday).getMonth() - 24,
);
const maxTimePick = new Date(pickDay.value.getTime()).setMonth(
new Date(yesterday).getMonth() + 24,
);
let maxDate = '';
if (maxTimePick > newDate) {
maxDate = newDate;
} else {
maxDate = maxTimePick;
}
return time.getTime() < minTimePick || time.getTime() > maxDate;
}
return time.getTime() > max;
function handleFocus() {
pickDay.value = null;
}
const visibleChange = () => {
pickDay.value = null;
};
// 日期选择器选择时触发
function handleChange(val) {
const [pointDay] = val;
pickDay.value = pointDay;
}
<el-date-picker
v-model="value1"
type="daterange"
unlink-panels
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间"
value-format="YYYY-MM-DD"
:disabled-date="disabledDate"
@calendar-change="handleChange"
@focus="handleFocus"
@visible-change="visibleChange"
/>