use*_*410 3 javascript momentjs reactjs react-datepicker
我的表单上有 DatePicker;
我正在使用这个包:[ https://reactdatepicker.com/#example-specific-time-range][1]
在选择开始日期上:我想禁用当前时间之前的所有时间。那么如果现在是凌晨 3 点。之前的时间(凌晨 2 点、凌晨 1 点、中午 12 点)将被禁用。
通常,它是这样的:但是这里他们写的是静态时间,我想在那里添加当前时间的当前小时。
<DatePicker
selected={startDate}
onChange={date => setStartDate(date)}
showTimeSelect
minTime={setHours(setMinutes(new Date(), 0), 17)}
maxTime={setHours(setMinutes(new Date(), 30), 20)}
dateFormat="MMMM d, yyyy h:mm aa"
/>
Run Code Online (Sandbox Code Playgroud)
所以我看到了一些关于这个的例子并尝试了这个:
const now = moment().toDate();
<DatePicker
selected={this.state.startDate}
onChange={event => this.getStartDate(event)}
showTimeSelect
timeFormat="haa"
timeIntervals={60}
minDate={now}
minTime={now.hours(now.hour()).minutes(now.minutes())}
maxTime={now.hours(23).minutes(45)}
dateFormat="MM/d/yyyy hhaa"
timeCaption="Hour"
/>
Run Code Online (Sandbox Code Playgroud)
但什么也没发生。我哪里出错了?
小智 7
使用 prop 过滤过去的时间对我有用filterTime。这是文档中片段的链接:
https://reactdatepicker.com/#example-filter-times
本质上,这就是您需要做的:
() => {
const [startDate, setStartDate] = useState(null);
const filterPassedTime = (time) => {
const currentDate = new Date();
const selectedDate = new Date(time);
return currentDate.getTime() < selectedDate.getTime();
};
return (
<DatePicker
selected={startDate}
onChange={(date) => setStartDate(date)}
showTimeSelect
filterTime={filterPassedTime}
dateFormat="MMMM d, yyyy h:mm aa"
/>
);
};
Run Code Online (Sandbox Code Playgroud)
您也不需要使用任何外部库,例如date-fns
| 归档时间: |
|
| 查看次数: |
12426 次 |
| 最近记录: |