在Antd日期选择器中禁用当前日期之前和当前日期1个月之后的日期

时间:2018-12-13 14:35:18

标签: reactjs date datepicker antd

我在我的React App中使用ant UI,那里有一个日期选择器。我想禁用当前日期之前和当前日期1个月之后的日期。
我的日期选择器

<DatePicker
     defaultValue={moment()}
     format={dateFormat}
     className="datePicker"
     onChange={dateHandler}
     ref={(dateSelect) => { this.dateSelect = dateSelect }}
     disabledDate={(current) => {
         return moment().add(-1, 'days')  >= current && 
              moment().add(1, 'month')  <= current;
         }}
     onFocus={this.rideDateGA}
/>

在这里,如果我return moment().add(-1, 'days') >= current,则禁用今天的前一个日期,但不禁用日期后的一个月。
就像我return moment().add(1, 'month') <= current一样,然后我可以禁用下个月的日期。
我的问题我无法同时返回两个值。
如何禁用上一个日期和下个月的日期

2 个答案:

答案 0 :(得分:2)

要在当前日期之前和当前日期1个月之后禁用,以下为代码。

@locker

答案 1 :(得分:1)

要禁用日期,您需要它同时满足这两个条件。

条件是:

moment().add(-1, 'days')  >= current && moment().add(1, 'month')  <= current;

当第一个moment().add(-1, 'days') >= currentfalse时,条件返回false,这就是为什么您看到正确禁用当前日期之前的日期的原因。

要使条件正确,您需要:

<DatePicker
  defaultValue={moment()}
  format={dateFormat}
  className="datePicker"
  onChange={dateHandler}
  ref={(dateSelect) => { this.dateSelect = dateSelect }}
  disabledDate={(current) => {
     return moment().add(-1, 'days')  >= current ||
          moment().add(1, 'month')  <= current;
     }}
  onFocus={this.rideDateGA}
/>