el-date-picker的default-time和picker-options冲突

鄂伟兆
2023-12-01
<el-date-picker
	v-model="selectDate"
	value-format="timestamp"
	type="daterange"
	range-separator="至"
	start-placeholder="开始日期"
	end-placeholder="结束日期"
	@change="changeDate"
	:default-time="['00:00:00', '23:59:59']"
	:picker-options="pickerOptions"
>
</el-date-picker>

pickerOptions: {
	disabledDate(time) {
		return time.getTime() > Date.now()
	},
},

当设置:default-time="['00:00:00', '23:59:59']":picker-options="pickerOptions"设置为选择当天时间的时候,当前选择的时间戳 肯定小于当天23:59:59的时间戳,选择不了

可以设置为

pickerOptions: {
	disabledDate(time) {
		return time.getTime() > Date.now() + 8.64e7;
	},
},

相当于了一天,但是后面一天的日期选择不了

data() {
    return {
        dateRange:[],
        // 设置可选择的时间段,*** 必须在 data 返回数据 ***
        setDateRange: {
            disabledDate: time => {
                // 只能选择当前 1 年内的时间
                const year = 365 * 24 * 3600 * 1000;
                // 只能选择当前 1 月的时间
                const month = 30 * 24 * 3600 * 1000;
                // 只能选择当前 1 周的时间
                const week = 7 * 24 * 3600 * 1000;
                // 返回小于当前日期并近【1年】【1月】【1周】内的日期
                // 注意:这是从当前日期开始往前算,如果当前日期可选的话,不要写【-8.64e7】
                return time.getTime() > Date.now() || time.getTime() < (Date.now() - 8.64e7) - year;
                // 禁用今天之前的日期【当前天可选】
                return time.getTime() < Date.now() - 8.64e7;
                 // 禁用今天之前的日期【当前天不可选】
                return time.getTime() < Date.now();
                // 禁用今天之后的日期【当前天不可选】
                return time.getTime() > Date.now() - 8.64e7;
                // 禁用今天之后的日期【当前天可选】
                return time.getTime() > Date.now();
            }
        },
    }
}
 类似资料: