Javascript 创建一个函数,用于防止在反应日期选择器中的特定日期之前选择其他日期

Javascript 创建一个函数,用于防止在反应日期选择器中的特定日期之前选择其他日期,javascript,reactjs,react-datepicker,Javascript,Reactjs,React Datepicker,例如,this.state.endDate=新日期(“2019-07-12 15:00:00+00”)。我的目标是:阻止在日期选择器中选择早于或等于this.state.endDate(this.state.endDate中的日期将更改)的日期。到目前为止,我成功地阻止了选择比当前日期更早的日期的可能性。但是,我有一个问题,就是无法将其设置为与当前日期进行比较,而是与this.state.endDate的日期进行比较。我使用这个库: 代码如下: 从“反应日期选择器”导入日期选择器; 导入“rea

例如,
this.state.endDate=新日期(“2019-07-12 15:00:00+00”)
。我的目标是:阻止在日期选择器中选择早于或等于
this.state.endDate
(this.state.endDate中的日期将更改)的日期。到目前为止,我成功地阻止了选择比当前日期更早的日期的可能性。但是,我有一个问题,就是无法将其设置为与当前日期进行比较,而是与
this.state.endDate
的日期进行比较。我使用这个库:

代码如下:

从“反应日期选择器”导入日期选择器;
导入“react datepicker/dist/react datepicker.css”;
从“力矩”中导入力矩;
类应用程序扩展组件{
构造函数(){
超级();
此.state={
所选:新日期(),
minTime:this.calculateMinTime(“2019-07-12 15:00:00+00”),
结束日期:新日期()
};
}
componentDidMount(){
这是我的国家({
结束日期:新日期(“2019-07-12 15:00:00+00”)
})
}
计算时间=日期=>{
让isToday=时刻(日期).IsName(时刻(),'day');
如果(每天){
让nowAddOneHour=moment(new Date()).add({hours:1}).toDate();
立即返回一小时;
}
返回力矩().startOf('day').toDate();
}
句柄=(日期)=>{
这是我的国家({
所选日期:日期,
minTime:此时间(日期)
})
}
render(){
console.log(this.state.endDate)
返回(
);
}
}

您需要设置
minDate={this.state.endDate}
。这将防止用户在
endDate

之前选择任何日期。您需要设置
minDate={This.state.endDate}
。这将阻止用户选择
结束日期之前的任何日期

import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
import moment from 'moment';


class App extends Component {
  constructor() {
    super();
    this.state = {
      selected: new Date(),
      minTime: this.calculateMinTime("2019-07-12 15:00:00+00"),
      endDate: new Date()
    };
  }

  componentDidMount() {
    this.setState({
      endDate: new Date("2019-07-12 15:00:00+00")
    })
  }

  calculateMinTime = date => {
    let isToday = moment(date).isSame(moment(), 'day');
    if (isToday) {
        let nowAddOneHour = moment(new Date()).add({hours: 1}).toDate();
        return nowAddOneHour;
    }
    return moment().startOf('day').toDate(); 
}

  handle = (date) => {
    this.setState({
      selectedDate: date,
      minTime: this.calculateMinTime(date)
    })
  }

  render() {
    console.log(this.state.endDate)
    return (
      <div>
         <DatePicker
            selected={this.state.selected}
            onChange={this.handle}
            excludeOut
            showTimeSelect
            timeFormat="HH:mm"
            timeIntervals={15}
            dateFormat="MMMM d, yyyy h:mm aa"
            timeCaption="time"
            minDate={new Date()}
            minTime={this.state.minTime}
            maxTime={moment().endOf('day').toDate()}
          />
      </div>
    );
  }
}