Importimport { Calendar } from 'antd'; |
When data is in the form of dates, such as schedules, timetables, prices calendar, lunar calendar. This component also supports Year/Month switch.
Common props ref:Common props
Note: Part of the Calendar's locale is read from value. So, please set the locale of dayjs correctly.
// The default locale is en-US, if you want to use other locale, just set locale in entry file globally.// import dayjs from 'dayjs';// import 'dayjs/locale/zh-cn';// dayjs.locale('zh-cn');<Calendar cellRender={cellRender} onPanelChange={onPanelChange} onSelect={onSelect} />
| Property | Description | Type | Default | Version |
|---|---|---|---|---|
| cellRender | Customize cell content | function(current: dayjs, info: { prefixCls: string, originNode: React.ReactElement, today: dayjs, range?: 'start' | 'end', type: PanelMode, locale?: Locale, subType?: 'hour' | 'minute' | 'second' | 'meridiem' }) => React.ReactNode | - | 5.4.0 |
| classNames | Customize class for each semantic structure inside the component. Supports object or function. | Record<SemanticDOM, string> | (info: { props })=> Record<SemanticDOM, string> | - | |
| dateFullCellRender | Customize the display of the date cell, the returned content will override the cell | function(date: Dayjs): ReactNode | - | |
| fullCellRender | Customize cell content | function(current: dayjs, info: { prefixCls: string, originNode: React.ReactElement, today: dayjs, range?: 'start' | 'end', type: PanelMode, locale?: Locale, subType?: 'hour' | 'minute' | 'second' | 'meridiem' }) => React.ReactNode | - | 5.4.0 |
| defaultValue | The date selected by default | dayjs | - | |
| disabledDate | Function that specifies the dates that cannot be selected, currentDate is same dayjs object as value prop which you shouldn't mutate it (https://github.com/ant-design/ant-design/issues/30987) | (currentDate: Dayjs) => boolean | - | |
| fullscreen | Whether to display in full-screen | boolean | true | |
| showWeek | Whether to display week number | boolean | false | 5.23.0 |
| styles | Customize inline style for each semantic structure inside the component. Supports object or function. | Record<SemanticDOM, CSSProperties> | (info: { props })=> Record<SemanticDOM, CSSProperties> | - | |
| headerRender | Render custom header in panel | function(object:{value: Dayjs, type: 'year' | 'month', onChange: f(), onTypeChange: f()}) | - | |
| locale | The calendar's locale | object | (default) | |
| mode | The display mode of the calendar | month | year | month | |
| validRange | To set valid range | [dayjs, dayjs] | - | |
| value | The current selected date | dayjs | - | |
| onChange | Callback for when date changes | function(date: Dayjs) | - | |
| onPanelChange | Callback for when panel changes | function(date: Dayjs, mode: string) | - | |
| onSelect | Callback for when a date is selected, include source info | function(date: Dayjs, info: { source: 'year' | 'month' | 'date' | 'customize' }) | - | info: 5.6.0 |
| Token Name | Description | Type | Default Value |
|---|---|---|---|
| fullBg | Background color of full calendar | string | #ffffff |
| fullPanelBg | Background color of full calendar panel | string | #ffffff |
| itemActiveBg | Background color of selected date item | string | #e6f4ff |
| miniContentHeight | Height of mini calendar content | string | number | 256 |
| monthControlWidth | Width of month select | string | number | 70 |
| yearControlWidth | Width of year select | string | number | 80 |
See How to set locale for date-related components
See FAQ Date-related-components-locale-is-not-working?
onSelect provide info.source to help on this:
<CalendaronSelect={(date, { source }) => {if (source === 'date') {console.log('Panel Select:', source);}}}/>
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
29 | 30 | 31 | 01 | 02 | 03 | 04 |
05 | 06 | 07 | 08 | 09 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 01 | 02 |
03 | 04 | 05 | 06 | 07 | 08 | 09 |
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
29 | 30 | 31 | 01 | 02 | 03 | 04 |
05 | 06 | 07 | 08
| 09 | 10
| 11 |
12 | 13 | 14 | 15
| 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 01 | 02 |
03 | 04 | 05 | 06 | 07 | 08
| 09 |
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
29 | 30 | 31 | 01 | 02 | 03 | 04 |
05 | 06 | 07 | 08 | 09 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 01 | 02 |
03 | 04 | 05 | 06 | 07 | 08 | 09 |
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
01 | 02 | 03 | 04 | 05 | 06 | 07 |
08 | 09 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 | 01 | 02 | 03 | 04 |
05 | 06 | 07 | 08 | 09 | 10 | 11 |
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
29 十一 | 30 十二 | 31 十三 | 1 十四 | 2 十五 | 3 十六 | 4 十七 |
5 清明节 | 6 十九 | 7 二十 | 8 廿一 | 9 廿二 | 10 廿三 | 11 廿四 |
12 廿五 | 13 廿六 | 14 廿七 | 15 廿八 | 16 廿九 | 17 初一 | 18 初二 |
19 初三 | 20 谷雨 | 21 初五 | 22 初六 | 23 初七 | 24 初八 | 25 初九 |
26 初十 | 27 十一 | 28 十二 | 29 十三 | 30 十四 | 1 劳动节 | 2 十六 |
3 十七 | 4 十八 | 5 立夏 | 6 二十 | 7 廿一 | 8 廿二 | 9 廿三 |
| Su | Mo | Tu | We | Th | Fr | Sa | |
|---|---|---|---|---|---|---|---|
14 | 29 | 30 | 31 | 01 | 02 | 03 | 04 |
15 | 05 | 06 | 07 | 08 | 09 | 10 | 11 |
16 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
17 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
18 | 26 | 27 | 28 | 29 | 30 | 01 | 02 |
19 | 03 | 04 | 05 | 06 | 07 | 08 | 09 |
| Su | Mo | Tu | We | Th | Fr | Sa | |
|---|---|---|---|---|---|---|---|
14 | 29 | 30 | 31 | 01 | 02 | 03 | 04 |
15 | 05 | 06 | 07 | 08 | 09 | 10 | 11 |
16 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
17 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
18 | 26 | 27 | 28 | 29 | 30 | 01 | 02 |
19 | 03 | 04 | 05 | 06 | 07 | 08 | 09 |
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
29 | 30 | 31 | 01 | 02 | 03 | 04 |
05 | 06 | 07 | 08 | 09 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 01 | 02 |
03 | 04 | 05 | 06 | 07 | 08 | 09 |
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
29 | 30 | 31 | 01 | 02 | 03 | 04 |
05 | 06 | 07 | 08 | 09 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 01 | 02 |
03 | 04 | 05 | 06 | 07 | 08 | 09 |
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
29 | 30 | 31 | 01 | 02 | 03 | 04 |
05 | 06 | 07 | 08 | 09 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 01 | 02 |
03 | 04 | 05 | 06 | 07 | 08 | 09 |
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
29 | 30 | 31 | 01 | 02 | 03 | 04 |
05 | 06 | 07 | 08 | 09 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 01 | 02 |
03 | 04 | 05 | 06 | 07 | 08 | 09 |