Date and Time inputs
setup
npm install @mantine/dates dayjs
import "@mantine/dates/styles.css"
DateTimePicker
collect an ISO date&time with DateTimePicker
const [createdAtISO, setCreatedAtISO] = useState(new Date().toISOString())
<DateTimePicker
valueFormat="MMMM DD [—] HH:mm"
value={completedAtIso}
onChange={(dateTimeSql) => {
if (!dateTimeSql) return
setCompletedAtIso(new Date(dateTimeSql).toISOString())
}}
label="Completed at"
/>
TimeInput and DatePickerInput
TimeInput
const startTimeIso = DateTime.local().toFormat("HH:mm")
const [timeIso, setTimeIso] = useState(startTimeIso)
<TimeInput
label="Time"
value={timeIso}
onChange={(timeIso) => {
setTimeIso(timeIso.target.value)
}}
/>
DatePickerInput
const startDatePartIso = DateTime.local().toFormat("yyyy-MM-dd")
const [datePartIso, setDatePartIso] = useState(startDatePartIso)
<DatePickerInput
label="Date"
value={datePartIso}
onChange={(datePartIso) => {
if (datePartIso) {
setDatePartIso(datePartIso)
}
}}
/>