Open14
MUI X DateTimePickerメモ
インストール
DateLibraryは'Day.js`を利用
$ pnpm add @mui/x-date-pickers dayjs @mui/material @emotion/react @emotion/styled
基本の表示
'use client';
import { LocalizationProvider, DatePicker } from '@mui/x-date-pickers';
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
import clsx from 'clsx';
import React from 'react';
import './global.css';
/** Date(共通UI) */
export const CommonDatePicker = React.memo(function CommonDatePicker() {
return (
<LocalizationProvider dateAdapter={AdapterDayjs}>
<DatePicker />
</LocalizationProvider>
);
});
初期値
<DatePicker value={dayjs()} />
コンポーネントの種類
日付選択
<DatePicker />
時刻選択
<TimePicker />
日時選択
<DateTimePicker />
日付選択(ラベルあり)
<DatePicker label="label" />
読み取り専用、無効
<div className="mb-2">
<DatePicker value={dayjs()} label="readOnly" readOnly />
</div>
<div>
<DatePicker value={dayjs()} label="disabled" disabled />
</div>
選択時の表示書式
<div className="mb-2">
<DatePicker label="年月のみ" views={['year', 'month']} />
</div>
<div>
<DatePicker label="日のみ" views={['day']} />
</div>
ヘルパーテキスト
<DatePicker
value={dayjs()}
slotProps={{
textField: {
helperText: 'ヘルパーテキスト',
},
}}
/>
クリアボタン
<DatePicker
value={dayjs()}
slotProps={{
field: {
clearable: true,
},
}}
/>
日付書式
<DatePicker value={dayjs()} format="YYYY-MM-DD" />
時刻選択パターン
時分(デフォルト)
<TimePicker />
時分秒
<TimePicker views={['hours', 'minutes', 'seconds']} />
分秒
<TimePicker views={['minutes', 'seconds']} />
時刻選択 24時間表示
HH
: 24時間表示
<TimePicker views={['hours', 'minutes', 'seconds']} format="HH:mm:ss" />
hh
: 12時間表記
<TimePicker views={['hours', 'minutes', 'seconds']} format="A hh:mm:ss" />
#時刻選択 24時間選択
<TimePicker views={['hours', 'minutes', 'seconds']} format="HH:mm:ss" ampm={false} />
フィールドのカスタマイズ