1. 前言
- 时间相关的转换
- 时间相关的验证
- 适用el-date-picker 的 options,当然其他逻辑也都是相通的
2. moment
- 主要借助 moment
3. 日期选择今日之前
DISABLE_DATE: {
disabledDate: (time) => {
return time.getTime() > Date.now();
},
},
4. 禁用开始日期
DISABLE_DATE_START(eTime) {
return {
disabledDate(time) {
if (eTime) {
//如果结束时间不为空,则小于结束时间
return new Date(eTime).getTime() < time.getTime();
} else {
// return time.getTime() > Date.now()//开始时间不选时,结束时间最大值小于等于当天
}
},
};
},
5. 禁用结束日期
DISABLE_DATE_END(sTime) {
return {
disabledDate(time) {
if (sTime) {
//如果开始时间不为空,则结束时间大于开始时间
return new Date(sTime).getTime() > time.getTime();
} else {
// return time.getTime() > Date.now()//开始时间不选时,结束时间最大值小于等于当天
}
},
};
},
6.开始日期不能大于结束日期 并且 不能大于今日之后的日期
beforeOptions(obj) {
return {
disabledDate: time => {
if (obj.eTime) {
return (
time.getTime() > new Date(obj.eTime)
);
} else {
return time.getTime() > Date.now();
}
}
};
},
7. 结束日期不能小于开始日期 并且 不能大于今日之后的日期
afterOptions(obj) {
return {
disabledDate: time => {
let startTime = time.getTime() > Date.now();
if (obj.sTime) {
startTime =
time.getTime() <
new Date(obj.sTime) -
(1 * 24 * 60 * 60 - 1) * 1000;
}
const endTime = time.getTime() > Date.now();
return startTime || endTime;
}
};
},
8.当前月(包含当前月不可选)
disableMonth() {
return {
disabledDate(time) {
const date = new Date()
const year = date.getFullYear()
let month = date.getMonth() + 1
month = month.toString().padStart(2, '0')
const currentDate = year.toString() + month
const timeYear = time.getFullYear()
let timeMonth = time.getMonth() + 1
timeMonth = timeMonth.toString().padStart(2, '0')
const timedate = timeYear.toString() + timeMonth
return currentDate >= timedate
},
};
},
参考资料
初心
我所有的文章都只是基于入门,初步的了解;是自己的知识体系梳理,如有错误,道友们一起沟通交流;
如果能帮助到有缘人,非常的荣幸,一切为了部落
的崛起;
共勉
网友评论