[英]One second time interval
在我網站上的一個過濾器選項中,用戶可以選擇日期范圍和時間范圍。 我對日期沒有問題。 但隨着時間的推移,有一個問題。
我正在使用 react-datepicker 中的 DatePicker。 為了顯示時間,我使用格式“HH:mm:ss”並添加了參數 timeIntervals={1}。 因此,用戶可以以一分鍾的頻率選擇時間。
然而,附近的秒數並沒有白費。 我想允許用戶選擇每一秒的時間。 如下
這個庫中沒有現成的解決方案。 而且我在 Internet 上找不到解決方案,也找不到文檔中的任何信息。 也許你可以幫助我。
下面是我的代碼
export default function FilterDateTime({ isExpanded, setIsExpanded }) {
const [startDate, setStartDate] = useState(new Date());
const [endDate, setEndDate] = useState(new Date());
const filterPassedTime = (time) => {
const selectedDate = new Date(time);
return selectedDate.getTime() > startDate.getTime();
};
return (
<ArrowDropdown
isExpanded={isExpanded}
setIsExpanded={setIsExpanded}
title="Date and Time range"
onClick={() => setIsExpanded(!isExpanded)}>
<>
<DatePicker
selected={startDate}
onChange={(date) => setStartDate(date)}
showTimeSelect
timeFormat="HH:mm:ss"
timeIntervals={1}
timeCaption="Time"
dateFormat="dd/MM/yyyy HH:mm:ss"
calendarStartDay={1}
onKeyDown={(e) => {e.preventDefault();}}
selectsStart
startDate={startDate}
endDate={endDate}
/>
<DatePicker
selected={endDate}
onChange={(date) => setEndDate(date)}
showTimeSelect
timeFormat="HH:mm:ss"
timeIntervals={1}
timeCaption="time"
dateFormat="dd/MM/yyyy HH:mm:ss"
calendarStartDay={1}
onKeyDown={(e) => {e.preventDefault();}}
selectsEnd
startDate={startDate}
endDate={endDate}
minDate={startDate}
filterTime={filterPassedTime}
/>
</>
</ArrowDropdown>
);
}
PS因為有可能這個功能不能做。 我可以允許用戶自己輸入秒數(此時我已經完全關閉了輸入)。 但考慮到結束日期的一秒不能少於開始日期的一秒。
react-datepicker 目前不支持此功能,但我可以看到該功能已經開發但正在 PR 審查中,可能需要一些時間才能推出。
這是相同的github pr
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.