antd组件,时间区域的限制。
/* ========时间限制区间======= */
const disabledDate = (current) => {
if (!dates || dates.length === 0) {
return current > moment().endOf("days");
}
const tooLate = (dates[0] && current > moment(dates[0]).add(1, "years")) || current > moment().endOf("days");
const tooEarly = (dates[1] && current < moment(dates[1]).subtract(1, "years"));
return tooLate || tooEarly;
};
上述代码实现的功能是,一开始只能选择当日之前的时间:
current > moment().endOf(“days”);
点击选择第一个时间(data[0]),执行tooLate这一行:
(dates[0] && current > moment(dates[0]).add(1, “years”)) || current > moment().endOf(“days”);
代码意思:只能选择dates[0]和moment(data[0]).add(1,“years”)【dates[0]的时间往后推一年】之间的数据,但是不能选取当日之后的时间【moment().endof(“days”)】
后者同理
建议将current看成时间线。>前推,<后推
add后推时间
subtract前推时间
endof(“days”) 一天的结束时间:23:59:59
endof(“year”) 一年的结束时间:12:31
startof(“days”) 一天的开始时间:00:00:00
startof(“years”) 一年的开始时间:01:01
moment().add().endof():生效顺序是从前往后的。