有一个需求是日期选择需要加一个日期限制。
于是我兴高采烈的加上去了。
// 日期可选判断方法 disabledDateFunc = current => { const { disabledDateArray } = this.state; if (disabledDateArray) { return ( current && (current < disabledDateArray[0] || current > disabledDateArray[1]) ); } else { return current; } };
结果发现一个问题:
比如我希望 用户可以选择 4月1日 到4月4日 。
结果 4月4日 也不能选?
后来知道原因了。
日期选择器用的是 moment 库。
当声明 moment 对象的时候,如果只声明日期,没有声明时间,时间就是当前时间(日期当然是声明的日期)。
而当前时间一定是在今天之内的,也就是说当判断的时候,临界值的时间会比当前时间小!
所以最后一天就不能选择了。
解决方法很简单。
// 日期可选判断方法 disabledDateFunc = current => { const { disabledDateArray } = this.state; if (disabledDateArray) { return ( current && (current < disabledDateArray[0] || current > disabledDateArray[1].endOf('day')) ); } else { return current; } };
OK。解决问题。
以上