main.js引用day.js
import dayjs from ‘dayjs’
app.config.globalProperties.dayjs = dayjs;
<el-row :gutter="20">
<el-col :span="12" class="text-center">
<el-form-item label="开始日期" prop="gmtInto">
<el-date-picker v-model=" form.gmtInto" :disabled-date="disabledBeforeDateFn" format='YYYY-MM-DD' value-format='YYYY-MM-DD' type="date" placeholder="请选择" :size="size" />
</el-form-item>
</el-col>
<el-col :span="12" class="text-center">
<el-form-item label="结束日期">
<el-date-picker v-model=" form.ltcInto" :disabled-date="disabledDateFn" format='YYYY-MM-DD' value-format='YYYY-MM-DD' type="date" placeholder="请选择" :size="size" />
</el-form-item>
</el-col>
</el-row>
//设置结束时间
const disabledDateFn = (time) => {
//在开始日期之后
if (form.value.gmtInto) {
return proxy.dayjs(time).isBefore(form.value.gmtInto);
} else {
return false
}
};
//设置开始时间
const disabledBeforeDateFn = (time) => {
//只能今天
return ( time.getTime() < new Date().getTime() || time.getTime() > new Date().getTime() + 1 * 24 * 60 * 60 * 1000);
//当天之前的不可选,不包括当天
return time&& time< proxy.dayjs().subtract(1, "days");
//不能在结束时间之后
if (form.value.ltcInto) {
return !proxy.dayjs(time).isBefore(form.value.ltcInto);
} else {
return false
}
}
限制选择时间范围
<el-date-picker :disabled-date="disabledDate"
v-model="queryParams.timer"
type="daterange"
format='YYYY-MM-DD'
value-format='YYYY-MM-DD'
:shortcuts="pickerShortcuts"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
align="right"
@calendar-change="chooseDay = $event[0]"
@focus="chooseDay = null"
>
</el-date-picker>
let queryParams = ref({
timer:['','']
})
const chooseDay = ref(null)
const disabledDate = date => {
console.log(date,queryParams.value.timer)
if (!chooseDay.value) {
return false
}
// 超过3天后禁用
const after3Days = proxy.dayjs(date).isAfter( proxy.dayjs(chooseDay.value).add(2, 'day'))
// 小于3天前禁用
const before3Days = proxy.dayjs(date).isBefore( proxy.dayjs(chooseDay.value).subtract(2, 'day'))
return after3Days || before3Days
}