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

zul*_*ain 3 date datepicker reactjs antd

我正在为我的 React 应用程序使用 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}
/>
Run Code Online (Sandbox Code Playgroud)

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

Agn*_*ney 7

要禁用日期,您需要它运行这两个条件。

当条件是:

moment().add(-1, 'days')  >= current && moment().add(1, 'month')  <= current;
Run Code Online (Sandbox Code Playgroud)

当第一个moment().add(-1, 'days') >= current为 时false,条件返回 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}
/>
Run Code Online (Sandbox Code Playgroud)


sun*_* ts 5

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

disabledSubmissionDate = (submissionValue) => {
    if (!submissionValue) {
        return false;
    }
    return (submissionValue.valueOf() < Date.now()) || (submissionValue.valueOf() >= moment().add(1, 'month'));
}


<DatePicker disabledDate={this.disabledSubmissionDate} onChange=this.SubmissionDateOnChange} />
Run Code Online (Sandbox Code Playgroud)