最近新拿到一个需求,要求时间和日期都不可以选择当前时间之后的时间,我这里的要求是精确到分钟,需要秒的可以加上
:disabled-seconds="disabledSeconds"
<el-date-picker
v-model="time"
type="datetime"
format="YYYY-MM-DD HH:mm"
value-format="YYYY-MM-DD HH:mm"
:disabled-date="disabledDate"
:disabled-hours="disabledHours"
:disabled-minutes="disabledMinutes">
</el-date-picker>
接下来就是方法了
// 禁用所有未来的日期
const disabledDate = (time) => {
return time.getTime() > Date.now();
};
// 禁用当前时间之后的小时
const disabledHours = (time) => {
let arr = []
for(let i = 0; i < 24; i++){
if(i > new Date().getHours()){
arr.push(i)
}
}
return arr;
};
// 禁用当前时间之后的分钟
const disabledMinutes = (time) => {
let arr = [];
if(time == new Date().getHours()){
for(let i = 0; i < 60; i++){
if(i > new Date().getMinutes()){
arr.push(i)
}
}
}
return arr;
};
下面是效果图