文档Tags:
dateTime

DatePicker 日期选择框

Guide

输入或选择日期的控件。当用户需要输入一个日期,可以点击标准输入框,弹出日期面板进行选择。

交互说明

DatePicker/RangePicker 在交互上增加了操作焦点的设置,意味着,如果某个输入框处于 focus 态,那么当前选择的日期将会作用于该输入框对应的日期。

基本用法

Loading demo...

最基本的用法。可以通过 onChange 监听选中值的变化。

APIs

DatePicker

参数说明类型默认值
label输入框内置标签ReactNode-
size输入框尺寸

可选值:
'small', 'medium', 'large'
Enum'medium'
state输入框状态

可选值:
'success', 'loading', 'error'
Enum-
placeholder输入提示String-
defaultVisibleMonth默认展现的月

签名:
Function() => MomentObject
返回值:
{MomentObject} 返回包含指定月份的 moment 对象实例
Function-
value日期值(受控)moment 对象custom-
defaultValue初始日期值,moment 对象custom-
format日期值的格式(用于限定用户输入和展示)String'YYYY-MM-DD'
showTime是否使用时间控件,传入 TimePicker 的属性 { defaultValue, format, ... }Object/Booleanfalse
resetTime每次选择日期时是否重置时间(仅在 showTime 开启时有效)Booleanfalse
disabledDate禁用日期函数

签名:
Function(日期值: MomentObject, view: String) => Boolean
参数:
日期值: {MomentObject} null
view: {String} 当前视图类型,year: 年, month: 月, date: 日
返回值:
{Boolean} 是否禁用
Function() => false
footerRender自定义面板页脚

签名:
Function() => Node
返回值:
{Node} 自定义的面板页脚组件
Function() => null
onChange日期值改变时的回调

签名:
Function(value: MomentObject/String) => void
参数:
value: {MomentObject/String} 日期值
Functionfunc.noop
onOk点击确认按钮时的回调

签名:
Function() => MomentObject/String
返回值:
{MomentObject/String} 日期值
Functionfunc.noop
disabled是否禁用Boolean-
hasClear是否显示清空按钮Booleantrue
visible弹层显示状态Boolean-
defaultVisible弹层默认是否显示Booleanfalse
onVisibleChange弹层展示状态变化时的回调

签名:
Function(visible: Boolean, type: String) => void
参数:
visible: {Boolean} 弹层是否显示
type: {String} 触发弹层显示和隐藏的来源 calendarSelect 表示由日期表盘的选择触发; okBtnClick 表示由确认按钮触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
Functionfunc.noop
popupTriggerType弹层触发方式

可选值:
'click', 'hover'
Enum'click'
popupAlign弹层对齐方式,具体含义见 OverLay文档String'tl tl'
popupContainer弹层容器any-
popupStyle弹层自定义样式Object-
popupClassName弹层自定义样式类String-
popupProps弹层其他属性Object-
followTrigger是否跟随滚动Boolean-
inputProps输入框其他属性Object-
dateCellRender自定义日期渲染函数

签名:
Function(value: Object) => ReactNode
参数:
value: {Object} 日期值(moment对象)
返回值:
{ReactNode} null
Function-
monthCellRender自定义月份渲染函数

签名:
Function(calendarDate: Object) => ReactNode
参数:
calendarDate: {Object} 对应 Calendar 返回的自定义日期对象
返回值:
{ReactNode} null
Function-
dateInputAriaLabel日期输入框的 aria-label 属性String-
timeInputAriaLabel时间输入框的 aria-label 属性String-
isPreview是否为预览态Boolean-
renderPreview预览态模式下渲染的内容

签名:
Function(value: MomentObject) => void
参数:
value: {MomentObject} 日期
Function-

DatePicker.MonthPicker

参数说明类型默认值
label输入框内置标签ReactNode-
size输入框尺寸

可选值:
'small', 'medium', 'large'
Enum'medium'
state输入框状态

可选值:
'success', 'loading', 'error'
Enum-
placeholder输入提示String-
defaultVisibleYear默认展现的年

签名:
Function() => MomentObject
返回值:
{MomentObject} 返回包含指定年份的 moment 对象实例
Function-
value日期值(受控)moment 对象custom-
defaultValue初始日期值,moment 对象custom-
format日期值的格式(用于限定用户输入和展示)String'YYYY-MM'
disabledDate禁用日期函数

签名:
Function(日期值: MomentObject, view: String) => Boolean
参数:
日期值: {MomentObject} null
view: {String} 当前视图类型,year: 年, month: 月, date: 日
返回值:
{Boolean} 是否禁用
Function() => false
footerRender自定义面板页脚

签名:
Function() => Node
返回值:
{Node} 自定义的面板页脚组件
Function() => null
onChange日期值改变时的回调

签名:
Function(value: MomentObject/String) => void
参数:
value: {MomentObject/String} 日期值
Functionfunc.noop
disabled是否禁用Boolean-
hasClear是否显示清空按钮Booleantrue
visible弹层显示状态Boolean-
defaultVisible弹层默认是否显示Boolean-
onVisibleChange弹层展示状态变化时的回调

签名:
Function(visible: Boolean, type: String) => void
参数:
visible: {Boolean} 弹层是否显示
type: {String} 触发弹层显示和隐藏的来源 calendarSelect 表示由日期表盘的选择触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
Functionfunc.noop
popupTriggerType弹层触发方式

可选值:
'click', 'hover'
Enum'click'
popupAlign弹层对齐方式, 具体含义见 OverLay文档String'tl tl'
popupContainer弹层容器any-
popupStyle弹层自定义样式Object-
popupClassName弹层自定义样式类String-
popupProps弹层其他属性Object-
followTrigger是否跟随滚动Boolean-
inputProps输入框其他属性Object-
monthCellRender自定义月份渲染函数

签名:
Function(calendarDate: Object) => ReactNode
参数:
calendarDate: {Object} 对应 Calendar 返回的自定义日期对象
返回值:
{ReactNode} null
Function-
dateInputAriaLabel日期输入框的 aria-label 属性String-
isPreview是否为预览态Boolean-
renderPreview预览态模式下渲染的内容

签名:
Function(value: MomentObject) => void
参数:
value: {MomentObject} 月份
Function-

DatePicker.RangePicker

参数说明类型默认值
size输入框尺寸

可选值:
'small', 'medium', 'large'
Enum'medium'
type日期范围类型

可选值:
'date', 'month', 'year'
Enum'date'
defaultVisibleMonth默认展示的起始月份

签名:
Function() => MomentObject
返回值:
{MomentObject} 返回包含指定月份的 moment 对象实例
Function-
value日期范围值数组 [moment, moment]Array-
defaultValue初始的日期范围值数组 [moment, moment]Array-
format日期格式String-
showTime是否使用时间控件,支持传入 TimePicker 的属性Object/Booleanfalse
resetTime每次选择是否重置时间(仅在 showTime 开启时有效)Booleanfalse
disabledDate禁用日期函数

签名:
Function(日期值: MomentObject, view: String) => Boolean
参数:
日期值: {MomentObject} null
view: {String} 当前视图类型,year: 年, month: 月, date: 日
返回值:
{Boolean} 是否禁用
Function() => false
footerRender自定义面板页脚

签名:
Function() => Node
返回值:
{Node} 自定义的面板页脚组件
Function() => null
onChange日期范围值改变时的回调 [ MomentObjectString, MomentObjectString ]

签名:
Function(value: Array) => void
参数:
value: {Array} 日期值
Functionfunc.noop
onOk点击确认按钮时的回调 返回开始时间和结束时间`[ MomentObjectString, MomentObjectString ]`

签名:
Function() => Array
返回值:
{Array} 日期范围
Functionfunc.noop
label输入框内置标签ReactNode-
state输入框状态

可选值:
'error', 'loading', 'success'
Enum-
disabled是否禁用Boolean-
hasClear是否显示清空按钮Booleantrue
visible弹层显示状态Boolean-
defaultVisible弹层默认是否显示Booleanfalse
onVisibleChange弹层展示状态变化时的回调

签名:
Function(visible: Boolean, type: String) => void
参数:
visible: {Boolean} 弹层是否显示
type: {String} 触发弹层显示和隐藏的来源 okBtnClick 表示由确认按钮触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
Functionfunc.noop
popupTriggerType弹层触发方式

可选值:
'click', 'hover'
Enum'click'
popupAlign弹层对齐方式, 具体含义见 OverLay文档String'tl tl'
popupContainer弹层容器any-
popupStyle弹层自定义样式Object-
popupClassName弹层自定义样式类String-
popupProps弹层其他属性Object-
followTrigger是否跟随滚动Boolean-
inputProps输入框其他属性Object-
dateCellRender自定义日期单元格渲染

签名:
Function() => void
Function-
monthCellRender自定义月份渲染函数

签名:
Function(calendarDate: Object) => ReactNode
参数:
calendarDate: {Object} 对应 Calendar 返回的自定义日期对象
返回值:
{ReactNode} null
Function-
startDateInputAriaLabel开始日期输入框的 aria-label 属性String-
startTimeInputAriaLabel开始时间输入框的 aria-label 属性String-
endDateInputAriaLabel结束日期输入框的 aria-label 属性String-
endTimeInputAriaLabel结束时间输入框的 aria-label 属性String-
isPreview是否为预览态Boolean-
renderPreview预览态模式下渲染的内容

签名:
Function(value: Array) => void
参数:
value: {Array} 日期区间
Function-

DatePicker.WeekPicker

参数说明类型默认值
label输入框内置标签ReactNode-
size输入框尺寸

可选值:
'small', 'medium', 'large'
Enum'medium'
state输入框状态

可选值:
'success', 'loading', 'error'
Enum-
placeholder输入提示String-
defaultVisibleMonth默认展现的月

签名:
Function() => MomentObject
返回值:
{MomentObject} 返回包含指定月份的 moment 对象实例
Function-
value日期值(受控)moment 对象custom-
defaultValue初始日期值,moment 对象custom-
format日期值的格式(用于限定用户输入和展示)String'YYYY-wo'
disabledDate禁用日期函数

签名:
Function(日期值: MomentObject, view: String) => Boolean
参数:
日期值: {MomentObject} null
view: {String} 当前视图类型,year: 年, month: 月, date: 日
返回值:
{Boolean} 是否禁用
Function() => false
footerRender自定义面板页脚

签名:
Function() => Node
返回值:
{Node} 自定义的面板页脚组件
Function() => null
onChange日期值改变时的回调

签名:
Function(value: MomentObject/String) => void
参数:
value: {MomentObject/String} 日期值
Functionfunc.noop
disabled是否禁用Boolean-
hasClear是否显示清空按钮Booleantrue
visible弹层显示状态Boolean-
defaultVisible弹层默认是否显示Booleanfalse
onVisibleChange弹层展示状态变化时的回调

签名:
Function(visible: Boolean, type: String) => void
参数:
visible: {Boolean} 弹层是否显示
type: {String} 触发弹层显示和隐藏的来源 calendarSelect 表示由日期表盘的选择触发; okBtnClick 表示由确认按钮触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
Functionfunc.noop
popupTriggerType弹层触发方式

可选值:
'click', 'hover'
Enum'click'
popupAlign弹层对齐方式,具体含义见 OverLay文档String'tl tl'
popupContainer弹层容器any-
popupStyle弹层自定义样式Object-
popupClassName弹层自定义样式类String-
popupProps弹层其他属性Object-
followTrigger是否跟随滚动Boolean-
inputProps输入框其他属性Object-
dateCellRender自定义日期渲染函数

签名:
Function(value: Object) => ReactNode
参数:
value: {Object} 日期值(moment对象)
返回值:
{ReactNode} null
Function-
monthCellRender自定义月份渲染函数

签名:
Function(calendarDate: Object) => ReactNode
参数:
calendarDate: {Object} 对应 Calendar 返回的自定义日期对象
返回值:
{ReactNode} null
Function-
isPreview是否为预览态Boolean-
renderPreview预览态模式下渲染的内容

签名:
Function(value: MomentObject) => void
参数:
value: {MomentObject} 年份
Function-

DatePicker.YearPicker

参数说明类型默认值
label输入框内置标签ReactNode-
size输入框尺寸

可选值:
'small', 'medium', 'large'
Enum'medium'
state输入框状态

可选值:
'success', 'loading', 'error'
Enum-
placeholder输入提示String-
value日期值(受控)moment 对象custom-
defaultValue初始日期值,moment 对象custom-
format日期值的格式(用于限定用户输入和展示)String'YYYY'
disabledDate禁用日期函数

签名:
Function(日期值: MomentObject, view: String) => Boolean
参数:
日期值: {MomentObject} null
view: {String} 当前视图类型,year: 年, month: 月, date: 日
返回值:
{Boolean} 是否禁用
Function() => false
footerRender自定义面板页脚

签名:
Function() => Node
返回值:
{Node} 自定义的面板页脚组件
Function() => null
onChange日期值改变时的回调

签名:
Function(value: MomentObject/String) => void
参数:
value: {MomentObject/String} 日期值
Functionfunc.noop
disabled是否禁用Boolean-
hasClear是否显示清空按钮Booleantrue
visible弹层显示状态Boolean-
defaultVisible弹层默认是否显示Boolean-
onVisibleChange弹层展示状态变化时的回调

签名:
Function(visible: Boolean, reason: String) => void
参数:
visible: {Boolean} 弹层是否显示
reason: {String} 触发弹层显示和隐藏的来源 calendarSelect 表示由日期表盘的选择触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
Functionfunc.noop
popupTriggerType弹层触发方式

可选值:
'click', 'hover'
Enum'click'
popupAlign弹层对齐方式, 具体含义见 OverLay文档String'tl tl'
popupContainer弹层容器any-
popupStyle弹层自定义样式Object-
popupClassName弹层自定义样式类String-
popupProps弹层其他属性Object-
followTrigger是否跟随滚动Boolean-
inputProps输入框其他属性Object-
dateInputAriaLabel日期输入框的 aria-label 属性String-
isPreview是否为预览态Boolean-
renderPreview预览态模式下渲染的内容

签名:
Function(value: MomentObject) => void
参数:
value: {MomentObject} 年份
Function-

Demo

提供默认值

Loading demo...

可以通过 defaultValue 属性为日期选择器提供初值,所提供的初值必须为 moment 对象。

面板的默认展现日期

Loading demo...

可以通过 defaultVisibleMonth 属性可以修改面板的默认展现日期。

不同尺寸

Loading demo...

通过 size 属性可以改变 Input 组件的尺寸,默认为 medium。

禁止选择某些日期

Loading demo...

可以通过 disabledDate 属性来禁止用户选择或输入某些特定日期。

日期时间选择

Loading demo...

如果需要同时选择时间,可以通过 showTime 属性开启,showTime 支持传入 TimePickerPanel 的属性,例如 format, defaultValue 等。

禁用日期选择

Loading demo...

当开启 disabled 属性时,选择框处于完全禁用状态。

日期格式

Loading demo...

通过 format 属性可以约束日期选择器的日期格式,该格式同时会限定用户的输入格式。

自定义日期范围选择

Loading demo...

如果默认的 RangePicker 在交互上无法满足您的使用需求,还可以基于 DatePicker 封装实现类似的功能。 例如,示例中的日期选择可以自由的更改开始或结束日期,而不必每次选择时重置日期。

自定义日期选择器弹层

Loading demo...

组件对外透出了 visible, defaultVisible, onVisibleChange, popupTriggerType, popupAlign, popupContainer, popupStyle, popupClassName 等属性用于直接定制弹层。此外,如果这些属性仍然无法满足需求,可以通过 popupProps 进行透传。

自定义面板页脚

Loading demo...

可以通过 footerRender 自定义对面板页脚的定制。

与 Field 结合

Loading demo...

与 Field 结合使用,简单示范自定义返回值