A simple and reusable datepicker component for React.
The package can be installed via NPM:
npm install react-datepicker --save
Or by using Yarn:
yarn add react-datepicker
Below are examples which also can be edited directly via the editor on the left side and will be rendered on the right.
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker showIcon selected={startDate} onChange={(date) => setStartDate(date)} /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker showIcon selected={startDate} onChange={(date) => setStartDate(date)} icon={ <svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 48 48" > <mask id="ipSApplication0"> <g fill="none" stroke="#fff" strokeLinejoin="round" strokeWidth="4"> <path strokeLinecap="round" d="M40.04 22v20h-32V22"></path> <path fill="#fff" d="M5.842 13.777C4.312 17.737 7.263 22 11.51 22c3.314 0 6.019-2.686 6.019-6a6 6 0 0 0 6 6h1.018a6 6 0 0 0 6-6c0 3.314 2.706 6 6.02 6c4.248 0 7.201-4.265 5.67-8.228L39.234 6H8.845l-3.003 7.777Z" ></path> </g> </mask> <path fill="currentColor" d="M0 0h48v48H0z" mask="url(#ipSApplication0)" ></path> </svg> } /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker showIcon selected={startDate} onChange={(date) => setStartDate(date)} icon="fa fa-calendar" /> ); };
() => { const [selectedDate, setSelectedDate] = useState(new Date()); return ( <DatePicker showIcon toggleCalendarOnIconClick selected={selectedDate} onChange={(date) => setSelectedDate(date)} /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); const MyContainer = ({ className, children }) => { return ( <div style={{ padding: "16px", background: "#216ba5", color: "#fff" }}> <CalendarContainer className={className}> <div style={{ background: "#f0f0f0" }}> What is your favorite day? </div> <div style={{ position: "relative" }}>{children}</div> </CalendarContainer> </div> ); }; return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} calendarContainer={MyContainer} /> ); };
() => { const [date, setDate] = useState(new Date()); const handleCalendarClose = () => console.log("Calendar closed"); const handleCalendarOpen = () => console.log("Calendar opened"); return ( <DatePicker selected={date} onChange={(date) => setDate(date)} onCalendarClose={handleCalendarClose} onCalendarOpen={handleCalendarOpen} /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)}> <div style={{ color: "red" }}>Don't forget to check the weather!</div> </DatePicker> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} isClearable placeholderText="I have been cleared!" /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker closeOnScroll={true} selected={startDate} onChange={(date) => setStartDate(date)} /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker closeOnScroll={(e) => e.target === document} selected={startDate} onChange={(date) => setStartDate(date)} /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} popperClassName="some-custom-class" popperPlacement="top-end" popperModifiers={[ { name: "myModifier", fn(state) { // Do something with the state return state; }, }, ]} /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); const ExampleCustomInput = forwardRef( ({ value, onClick, className }, ref) => ( <button className={className} onClick={onClick} ref={ref}> {value} </button> ), ); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} customInput={<ExampleCustomInput className="example-custom-input" />} /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); const years = range(1990, getYear(new Date()) + 1, 1); const months = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", ]; return ( <DatePicker renderCustomHeader={({ date, changeYear, changeMonth, decreaseMonth, increaseMonth, prevMonthButtonDisabled, nextMonthButtonDisabled, }) => ( <div style={{ margin: 10, display: "flex", justifyContent: "center", }} > <button onClick={decreaseMonth} disabled={prevMonthButtonDisabled}> {"<"} </button> <select value={getYear(date)} onChange={({ target: { value } }) => changeYear(value)} > {years.map((option) => ( <option key={option} value={option}> {option} </option> ))} </select> <select value={months[getMonth(date)]} onChange={({ target: { value } }) => changeMonth(months.indexOf(value)) } > {months.map((option) => ( <option key={option} value={option}> {option} </option> ))} </select> <button onClick={increaseMonth} disabled={nextMonthButtonDisabled}> {">"} </button> </div> )} selected={startDate} onChange={(date) => setStartDate(date)} /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker renderCustomHeader={({ monthDate, customHeaderCount, decreaseMonth, increaseMonth, }) => ( <div> <button aria-label="Previous Month" className={ "react-datepicker__navigation react-datepicker__navigation--previous" } style={customHeaderCount === 1 ? { visibility: "hidden" } : null} onClick={decreaseMonth} > <span className={ "react-datepicker__navigation-icon react-datepicker__navigation-icon--previous" } > {"<"} </span> </button> <span className="react-datepicker__current-month"> {monthDate.toLocaleString("en-US", { month: "long", year: "numeric", })} </span> <button aria-label="Next Month" className={ "react-datepicker__navigation react-datepicker__navigation--next" } style={customHeaderCount === 0 ? { visibility: "hidden" } : null} onClick={increaseMonth} > <span className={ "react-datepicker__navigation-icon react-datepicker__navigation-icon--next" } > {">"} </span> </button> </div> )} selected={startDate} onChange={(date) => setStartDate(date)} monthsShown={2} /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); const renderDayContents = (day, date) => { const tooltipText = `Tooltip for date: ${date}`; return <span title={tooltipText}>{getDate(date)}</span>; }; return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} renderDayContents={renderDayContents} /> ); };
() => { const renderMonthContent = (month, shortMonth, longMonth, day) => { const fullYear = new Date(day).getFullYear(); const tooltipText = `Tooltip for month: ${longMonth} ${fullYear}`; return <span title={tooltipText}>{shortMonth}</span>; }; return ( <DatePicker selected={new Date()} renderMonthContent={renderMonthContent} showMonthYearPicker dateFormat="MM/yyyy" /> ); };
() => { const renderQuarterContent = (quarter, shortQuarter) => { const tooltipText = `Tooltip for quarter: ${quarter}`; return <span title={tooltipText}>{shortQuarter}</span>; }; return ( <DatePicker selected={new Date()} renderQuarterContent={renderQuarterContent} showQuarterYearPicker dateFormat="yyyy, QQQ" /> ); };
() => { const renderYearContent = (year) => { const tooltipText = `Tooltip for year: ${year}`; return <span title={tooltipText}>{year}</span>; }; return ( <DatePicker selected={new Date()} renderYearContent={renderYearContent} showYearPicker dateFormat="yyyy" /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} calendarClassName="rasta-stripes" /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} className="red-border" /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} dayClassName={(date) => getDate(date) < Math.random() * 31 ? "random" : undefined } /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker dateFormat="yyyy/MM/dd" selected={startDate} onChange={(date) => setStartDate(date)} /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); let handleColor = (time) => { return time.getHours() > 12 ? "text-success" : "text-error"; }; return ( <DatePicker showTimeSelect selected={startDate} onChange={(date) => setStartDate(date)} timeClassName={handleColor} /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); const ExampleCustomTimeInput = ({ value, onChange }) => ( <input value={value} onChange={(e) => onChange(e.target.value)} onClick={(e) => e.target?.focus()} style={{ border: "solid 1px pink" }} /> ); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} showTimeInput customTimeInput={<ExampleCustomTimeInput />} /> ); };
() => { const [startDate, setStartDate] = useState(new Date("2014/02/08")); const [endDate, setEndDate] = useState(new Date("2014/02/10")); return ( <> <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} selectsStart startDate={startDate} endDate={endDate} /> <DatePicker selected={endDate} onChange={(date) => setEndDate(date)} selectsEnd startDate={startDate} endDate={endDate} minDate={startDate} /> </> ); };
() => { const [startDate, setStartDate] = useState(new Date()); const [endDate, setEndDate] = useState(null); const onChange = (dates) => { const [start, end] = dates; setStartDate(start); setEndDate(end); }; return ( <DatePicker selected={startDate} onChange={onChange} startDate={startDate} endDate={endDate} selectsRange inline /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); const [endDate, setEndDate] = useState(null); const onChange = (dates) => { const [start, end] = dates; setStartDate(start); setEndDate(end); }; return ( <DatePicker selected={startDate} onChange={onChange} startDate={startDate} endDate={endDate} excludeDates={[addDays(new Date(), 1), addDays(new Date(), 5)]} selectsRange selectsDisabledDaysInRange inline /> ); };
() => { const [dateRange, setDateRange] = useState([null, null]); const [startDate, endDate] = dateRange; return ( <DatePicker selectsRange={true} startDate={startDate} endDate={endDate} onChange={(update) => { setDateRange(update); }} withPortal /> ); };
() => { const [startDate, setStartDate] = useState(null); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} disabled placeholderText="This is disabled" /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} locale="en-GB" showWeekNumbers /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} shouldCloseOnSelect={false} /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} excludeDates={[new Date(), subDays(new Date(), 1)]} placeholderText="Select a date other than today or yesterday" /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} excludeDates={[ { date: new Date(), message: "Today is excluded" }, { date: subDays(new Date(), 1), message: "This day is excluded" }, ]} placeholderText="Select a date other than today or yesterday" /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} excludeDateIntervals={[ { start: subDays(new Date(), 5), end: addDays(new Date(), 5) }, ]} placeholderText="Select a date other than the interval from 5 days ago to 5 days in the future" /> ); };
() => { const [startDate, setStartDate] = useState(new Date("2024-08-01")); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} dateFormat="MM/yyyy" excludeDates={[new Date("2024-05-01"), new Date("2024-06-01")]} showMonthYearPicker /> ); };
() => { const defaultStartDate = new Date("2024-08-01"); const defaultEndDate = new Date("2024-10-01"); const [startDate, setStartDate] = useState(defaultStartDate); const [endDate, setEndDate] = useState(defaultEndDate); const handleChange = ([newStartDate, newEndDate]) => { setStartDate(newStartDate); setEndDate(newEndDate); }; return ( <DatePicker selected={startDate} startDate={startDate} endDate={endDate} onChange={handleChange} excludeDates={[ new Date("2024-05-01"), new Date("2024-02-01"), new Date("2024-01-01"), new Date("2024-11-01"), ]} dateFormat="MM/yyyy" placeholderText="Select a month other than the disabled months" showMonthYearPicker selectsRange /> ); };
() => { const [startDate, setStartDate] = useState( setHours(setMinutes(new Date(), 30), 16), ); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} showTimeSelect excludeTimes={[ setHours(setMinutes(new Date(), 0), 17), setHours(setMinutes(new Date(), 30), 18), setHours(setMinutes(new Date(), 30), 19), setHours(setMinutes(new Date(), 30), 17), ]} dateFormat="MMMM d, yyyy h:mm aa" /> ); };
() => { const [startDate, setStartDate] = useState(null); const isWeekday = (date) => { const day = getDay(date); return day !== 0 && day !== 6; }; return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} filterDate={isWeekday} placeholderText="Select a weekday" /> ); };
() => { const [startDate, setStartDate] = useState( setHours(setMinutes(new Date(), 0), 9), ); 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" /> ); };
() => { const [startDate, setStartDate] = useState(null); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} fixedHeight /> ); };
() => { const [startDate, setStartDate] = useState(null); const handleChangeRaw = (value) => { if (value === "tomorrow") { setStartDate(addDays(new Date(), 1)); } }; return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} placeholderText='Enter "tomorrow"' onChangeRaw={(event) => handleChangeRaw(event.target.value)} /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} highlightDates={[subDays(new Date(), 7), addDays(new Date(), 7)]} placeholderText="This highlights a week ago and a week from today" /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); const highlightWithRanges = [ { "react-datepicker__day--highlighted-custom-1": [ subDays(new Date(), 4), subDays(new Date(), 3), subDays(new Date(), 2), subDays(new Date(), 1), ], }, { "react-datepicker__day--highlighted-custom-2": [ addDays(new Date(), 1), addDays(new Date(), 2), addDays(new Date(), 3), addDays(new Date(), 4), ], }, ]; return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} highlightDates={highlightWithRanges} placeholderText="This highlight two ranges with custom classes" /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} holidays={[ { date: "2023-08-15", holidayName: "India's Independence Day" }, { date: "2023-12-31", holidayName: "New Year's Eve" }, { date: "2023-12-25", holidayName: "Christmas" }, { date: "2024-01-01", holidayName: "New Year's Day" }, { date: "2023-11-23", holidayName: "Thanksgiving Day" }, { date: "2023-12-25", holidayName: "Fake holiday" }, ]} placeholderText="This display holidays" /> ); };
() => { const [startDate, setStartDate] = useState(null); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} includeDates={[new Date(), addDays(new Date(), 1)]} placeholderText="This only includes today and tomorrow" /> ); };
() => { const [startDate, setStartDate] = useState(null); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} includeDateIntervals={[ { start: subDays(new Date(), 5), end: addDays(new Date(), 5) }, ]} placeholderText="This only includes dates from 5 days ago to 5 days in the future" /> ); };
() => { const [startDate, setStartDate] = useState(1661990400000); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} dateFormat="MM/yyyy" includeDates={[ 1661990400000, 1664582400000, 1667260800000, 1672531200000, ]} showMonthYearPicker /> ); };
() => { const [startDate, setStartDate] = useState( setHours(setMinutes(new Date(), 30), 16), ); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} showTimeSelect 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), ]} dateFormat="MMMM d, yyyy h:mm aa" /> ); };
() => { const [startDate, setStartDate] = useState( setHours(setMinutes(new Date(), 30), 16), ); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} showTimeSelect timeFormat="HH:mm:ss" injectTimes={[ setHours(setMinutes(setSeconds(new Date(), 10), 1), 0), setHours(setMinutes(new Date(), 5), 12), setHours(setMinutes(new Date(), 59), 23), ]} dateFormat="MMMM d, yyyy h:mm aa" /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} inline /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} timeInputLabel="Time:" dateFormat="MM/dd/yyyy h:mm aa" showTimeInput /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} locale="en-GB" placeholderText="Weeks start on Monday" /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} locale="pt-BR" showTimeSelect timeFormat="p" timeIntervals={15} dateFormat="Pp" /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} locale={fi} /> ); };
() => { const [startDate, setStartDate] = useState(null); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} minDate={subDays(new Date(), 5)} placeholderText="Select a date after 5 days ago" /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} maxDate={addDays(new Date(), 5)} placeholderText="Select a date before 5 days in the future" /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} dateFormat="MM/yyyy" showMonthYearPicker /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} dateFormat="MM/yyyy" showMonthYearPicker showFullMonthYearPicker /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} dateFormat="MM/yyyy" showMonthYearPicker showFullMonthYearPicker showTwoColumnMonthYearPicker /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} dateFormat="MM/yyyy" showMonthYearPicker showFullMonthYearPicker showFourColumnMonthYearPicker /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} showMonthDropdown /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} showMonthDropdown useShortMonthInDropdown /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} dateFormatCalendar={"MMM yyyy"} minDate={subMonths(new Date(), 6)} maxDate={addMonths(new Date(), 6)} showMonthYearDropdown /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} monthsShown={2} /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} monthsShown={2} showYearDropdown /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} monthsShown={2} inline /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker showPopperArrow={false} selected={startDate} onChange={(date) => setStartDate(date)} /> ); };
() => { const [startDate, setStartDate] = useState(null); const handleOnBlur = ({ target: { value } }) => { const date = new Date(value); if (isValid(date)) { console.log("date: %s", format(date, "dd/MM/yyyy")); } else { console.log("value: %s", date); } }; return ( <DatePicker key="example9" selected={startDate} onChange={(date) => setStartDate(date)} onBlur={handleOnBlur} placeholderText="View blur callbacks in console" /> ); };
() => { const [startDate, setStartDate] = useState(null); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} openToDate={new Date("1993/09/28")} /> ); };
<DatePicker placeholderText="Click to select a date" />;
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} withPortal /> ); };
If the provided portalId cannot be found in the dom, one will be created by default with that id.
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} portalId="root-portal" /> ); };
If the provided portalId cannot be found in the dom, one will be created by default with that id.
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} withPortal portalId="root-portal" /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} dateFormat="yyyy, QQQ" showQuarterYearPicker /> ); };
() => { const [startDate, setStartDate] = useState(new Date("2014/02/08")); const [endDate, setEndDate] = useState(new Date("2014/04/08")); return ( <> <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} selectsStart startDate={startDate} endDate={endDate} dateFormat="MM/yyyy" showMonthYearPicker /> <DatePicker selected={endDate} onChange={(date) => setEndDate(date)} selectsEnd startDate={startDate} endDate={endDate} dateFormat="MM/yyyy" showMonthYearPicker /> </> ); };
() => { const [startDate, setStartDate] = useState(new Date("2014/02/08")); const [endDate, setEndDate] = useState(null); const handleChange = ([newStartDate, newEndDate]) => { setStartDate(newStartDate); setEndDate(newEndDate); }; return ( <DatePicker selected={startDate} onChange={handleChange} selectsRange startDate={startDate} endDate={endDate} dateFormat="MM/yyyy" showMonthYearPicker /> ); };
() => { const [startDate, setStartDate] = useState(new Date("2014/02/08")); const [endDate, setEndDate] = useState(new Date("2014/07/08")); return ( <> <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} selectsStart startDate={startDate} endDate={endDate} dateFormat="yyyy, QQQ" showQuarterYearPicker /> <DatePicker selected={endDate} onChange={(date) => setEndDate(date)} selectsEnd startDate={startDate} endDate={endDate} dateFormat="yyyy, QQQ" showQuarterYearPicker /> </> ); };
() => { const [startDate, setStartDate] = useState(new Date("2014/02/08")); const [endDate, setEndDate] = useState(null); const handleChange = ([newStartDate, newEndDate]) => { setStartDate(newStartDate); setEndDate(newEndDate); }; return ( <DatePicker selected={startDate} onChange={handleChange} selectsRange startDate={startDate} endDate={endDate} dateFormat="yyyy, QQQ" showQuarterYearPicker /> ); };
Swap the start and end date if the end date is before the start date in a pick sequence.
() => { const [startDate, setStartDate] = useState(new Date()); const [endDate, setEndDate] = useState(null); const onChange = (dates) => { const [start, end] = dates; setStartDate(start); setEndDate(end); }; return ( <DatePicker swapRange selected={startDate} onChange={onChange} startDate={startDate} endDate={endDate} excludeDates={[addDays(new Date(), 1), addDays(new Date(), 5)]} selectsRange selectsDisabledDaysInRange inline /> ); };
() => { const [startDate, setStartDate] = useState(null); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} placeholderText="This is readOnly" readOnly /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} showTimeSelect timeFormat="HH:mm" timeIntervals={15} timeCaption="time" dateFormat="MMMM d, yyyy h:mm aa" /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} showTimeSelect showTimeSelectOnly timeIntervals={15} timeCaption="Time" dateFormat="h:mm aa" /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} showTimeSelect showTimeSelectOnly timeIntervals={15} dateFormat="h:mm aa" showTimeCaption={false} /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} showPreviousMonths onChange={(date) => setStartDate(date)} monthsShown={2} /> ); };
() => { const [startDate, setStartDate] = useState(null); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} minDate={new Date()} maxDate={addDays(new Date(), 5)} placeholderText="Select a date between today and 5 days in the future" /> ); };
() => { const [startDate, setStartDate] = useState( setHours(setMinutes(new Date(), 30), 17), ); return ( <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" /> ); };
() => { const [selectedDates, setSelectedDates] = useState([new Date()]); const onChange = (dates) => { setSelectedDates(dates); }; return ( <DatePicker selectedDates={selectedDates} selectsMultiple onChange={onChange} shouldCloseOnSelect={false} disabledKeyboardNavigation /> ); };
() => { const [selectedDates, setSelectedDates] = useState([new Date()]); const onChange = (dates) => { setSelectedDates(dates); }; return ( <DatePicker selectedDates={selectedDates} selectsMultiple showMonthYearPicker show onChange={onChange} shouldCloseOnSelect={false} disabledKeyboardNavigation /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} strictParsing /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} tabIndex={1} /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} showYearPicker dateFormat="yyyy" /> ); };
() => { const [startDate, setStartDate] = useState(new Date("2014/02/08")); const [endDate, setEndDate] = useState(new Date("2024/04/08")); return ( <> <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} selectsStart startDate={startDate} endDate={endDate} dateFormat="yyyy" showYearPicker /> <DatePicker selected={endDate} onChange={(date) => setEndDate(date)} selectsEnd startDate={startDate} endDate={endDate} dateFormat="yyyy" showYearPicker /> </> ); };
() => { const [startDate, setStartDate] = useState(new Date("2014/02/08")); const [endDate, setEndDate] = useState(null); const handleChange = ([newStartDate, newEndDate]) => { setStartDate(newStartDate); setEndDate(newEndDate); }; return ( <DatePicker selected={startDate} onChange={handleChange} selectsRange startDate={startDate} endDate={endDate} dateFormat="yyyy" showYearPicker /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} showYearDropdown dateFormatCalendar="MMMM" yearDropdownItemNumber={15} scrollableYearDropdown /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} peekNextMonth showMonthDropdown showYearDropdown dropdownMode="select" /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} showYearPicker dateFormat="yyyy" yearItemNumber={9} /> ); };
() => { const [startDate, setStartDate] = useState(new Date()); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} calendarStartDay={3} /> ); };
() => { const [startDate, setStartDate] = useState(new Date("2021/02/22")); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} dateFormat="I/R" locale="en-GB" showWeekNumbers showWeekPicker /> ); };
() => { const [startDate, setStartDate] = useState(new Date("2021/02/22")); return ( <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} dateFormat="I/R" locale="en-GB" excludeDateIntervals={[ { start: "2021/02/08", end: "2021/02/14" }, { start: "2021/01/18", end: "2021/01/24" }, ]} showWeekNumbers showWeekPicker /> ); };
() => { const [startDate, setStartDate] = useState(null); return ( <> <DatePicker selected={startDate} onChange={(date) => setStartDate(date)} required form="external-form" /> <form id="external-form"> <input type="submit" /> </form> </> ); };