1、html
<el-date-picker
:picker-options="pickerOptions"
type="datetime"
placeholder="请选择时间"
v-model="createDate"
value-format="timestamp"
>
</el-date-picker>
1、禁止今天之前的时间,不包括今天,
今天只能选择当前时间2个小时之后的时间
data() {
const validateDate = (rule, value, callback) => {
if (value) {
let timestamp = new Date().getTime()// 当前的时间戳
timestamp = timestamp + 2 * 60 * 60 * 1000
if (value < timestamp) {
callback(new Error('不能选择当前时间2个小时之前的时间'))
} else {
callback()
}
} else {
callback()
}
}
return {
goodsElseRules: {
customDate: [
{ type: 'date', required: true, message: '请填写自定义时间', trigger: 'change' },
{ validator: validateDate, trigger: 'change' }
]
},
pickerOptions: {
disabledDate: (time) => {
let nowData = new Date()
nowData = new Date(nowData.setDate(nowData.getDate() - 1))
return time < nowData
}
}
}
},
2、禁止今天之前和10天之后的时间
pickerOptions: {
disabledDate: (time) => {
// 设置可选择的日期为今天之后的一个月内
const curDate = (new Date()).getTime()
// 这里算出一个月的毫秒数,
这里使用30的平均值,实际中应根据具体的每个月有多少天计算
const day = 10 * 24 * 3600 * 1000
const dateRegion = curDate + day
return time.getTime() < Date.now() - 8.64e7 ||
time.getTime() > dateRegion
}
}