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>
);
}
}