react-datepicker includeTimes 选项

react-datepicker includeTimes option

我想要两个反应日期选择器,一个显示开始时间,另一个显示结束时间。在结束时间选择器中,我想禁用从时间选择器输入 select 之前的时间。

所以如果我 select 从 8:00pm 开始,那么 8:00pm 之前的所有时间都应该被禁用

对于结束时间选择器,我正在执行以下操作

<DatePicker
     selected={this.state.endTime}
     onChange={this.changeEndTime}
     showTimeSelect
     showTimeSelectOnly
     timeIntervals={30}
     timeCaption="Time"
     includeTimes={[
         setHours(setMinutes(new Date(), 0), 17),
         setHours(setMinutes(new Date(), 30), 18),
         setHours(setMinutes(new Date(), 30), 19),
         setHours(setMinutes(new Date(), 30), 17)
     ]}
     className={classes.timer}
     dateFormat="h:mm aa"
 />

但是,时间选择器的下拉列表中的所有时间都被禁用了..请帮助

为什么不使用 minTimemaxTime 属性来控制 enabled/disabled 的时间?

换句话说,当您在 FROM TIME 日期选择器中 select 一个类似 2:00pm 的值时,TO TIME 日期选择器 minTime 属性 你将设置为 2:30pm.

这可以通过 FROM TIME onChange 事件来处理。您可以创建一个存储最短时间的状态变量,并在 FROM TIME onChange 事件中更新该状态。然后每次值更改时,TO TIME 上的 minTime 属性 都会更改。

查看 minTimemaxTime 的文档:https://reactdatepicker.com/#example-specific-time-range

我的DatePicker代码

<DatePicker
    selected={this.state.endTime}
    onChange={this.changeEndTime}
    showTimeSelect
    showTimeSelectOnly
    timeIntervals={30}
    timeCaption="Time"
    className={classes.timer}
    dateFormat="h:mm aa"
    minTime={this.endMinDate}
    maxTime={setHours(setMinutes(new Date(), 30), 23)}
/>

*endMinDate 我在函数中计算

setHours 和 setMinutes 工作不正常(setHours() 以某种方式将分钟设置为日期)

最初我是按如下方式导入的

import setHours from "date-fns/setMinutes";
import setMinutes from "date-fns/setMinutes";

然后,我做了以下更改

import {setSeconds, setMinutes} from "date-fns";

所以代码现在可以工作了,虽然我仍然不确定,导入是如何产生影响的