--- nav: path: /components group: title: 信息输入 order: 10 toc: 'content' --- # DatePicker 时间选择器 相比于原生 `my.datePicker`,实现了 iOS 与 Android 端体验一致。 ## 代码示例 ## API ### DatePicker | 属性 | 说明 | 类型 | 默认值 | | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ------------ | | animationType | 动画类型,可选 `transform` `position`,默认使用 `transform` 动画性能更好。由于小程序基础库 bug,弹窗内 `picker-view` 阴影样式在 iOS 下可能存在样式问题,可暂切换为 `position` 解决。 | string | `transform` | | className | 类名 | string | - | | defaultValue | 默认选中的时间 | Date | - | | disabled | 是否禁用 | boolean | false | | cancelText | 取消文案 | string | "取消" | | content | 自定义内容插槽 | slot | - | | format | 时间格式化显示,格式同 [dayjs](https://day.js.org/docs/zh-CN/display/format) | string | 'YYYY/MM/DD' | | indicatorStyle | 选中框样式 | string | - | | indicatorClassName | 选中框的类名 | string | - | | maskClassName | 蒙层的类名 | string | - | | maskClosable | 点击蒙层是否可以关闭 | boolean | true | | maskStyle | 蒙层样式 | string | - | | max | 最大值 | Date | 十年后 | | min | 最小值 | Date | 十年前 | | okText | 确认按钮文案 | string | "确定" | | placeholder | 提示文案 | string | "请选择" | | popClassName | 弹出框类名 | string | - | | popStyle | 弹出框样式 | string | - | | precision | 选择精度,可选 `year` `month` `day` `hour` `minute` `second` | string | `day` | | prefix | 前缀 | slot | - | | style | 样式 | string | - | | suffix | 后缀 | slot | - | | title | 弹出框标题 | string \| slot | - | | value | 选中的时间 | Date | - | | onOk | 点击确定按钮,触发回调 | (date: Date, dateStr: string, event: [Event](https://opendocs.alipay.com/mini/framework/event-object)) => void | - | | onCancel | 点击取消按钮/蒙层,触发回调 | (event: [Event](https://opendocs.alipay.com/mini/framework/event-object)) => void | - | | onPickerChange | 选中项发生变化,触发回调 | (date: Date, dateStr: string, event: [Event](https://opendocs.alipay.com/mini/framework/event-object)) => void | - | | onFormat | 选中值的文本显示格式 | (date: Date, dateStr: string) => string | - | | onFormatLabel | 自定义每列展示的内容,默 认添加年、月、日、时、分、秒单位 | (type: `year` \| `month` \| `day` \| `hour` \| `minute` \| `second`, value: number) => string | - | | onVisibleChange | 弹出框显示/隐藏状态变化触发 | (visible: boolean, event: [Event](https://opendocs.alipay.com/mini/framework/event-object)) => void | - | ### RangePicker | 属性 | 说明 | 类型 | 默认值 | | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ------------ | | animationType | 动画类型,可选 `transform` `position`,默认使用 `transform` 动画性能更好。由于小程序基础库 bug,弹窗内 `picker-view` 阴影样式在 iOS 下可能存在样式问题,可暂切换为 `position` 解决。 | string | `transform` | | className | 类名 | string | - | | defaultValue | 默认选中的时间范围 | [Date, Date] | - | | disabled | 是否禁用 | boolean | false | | cancelText | 取消文案 | string | "取消" | | content | 自定义内容插槽 | slot | - | | endPlaceholder | 结束时间提示文案 | string | "未选择" | | format | 时间格式化显示,格式同 [dayjs](https://day.js.org/docs/zh-CN/display/format) | string | 'YYYY/MM/DD' | | indicatorStyle | 选中框样式 | string | - | | indicatorClassName | 选中框的类名 | string | - | | maskClassName | 蒙层的类名 | string | - | | maskClosable | 点击蒙层是否可以关闭 | boolean | true | | maskStyle | 蒙层样式 | string | - | | max | 最大值 | Date | 十年后 | | min | 最小值 | Date | 十年前 | | okText | 确认按钮文案 | string | "确定" | | placeholder | 提示文案 | string | "请选择" | | popClassName | 弹出框类名 | string | - | | popStyle | 弹出框样式 | string | - | | precision | 选择精度,可选 `year` `month` `day` `hour` `minute` | string | `day` | | splitCharacter | 显示连接符 | string | - | | startPlaceholder | 开始时间提示文案 | string | "未选择" | | prefix | 前缀 | slot | - | | style | 样式 | string | - | | suffix | 后缀 | slot | - | | title | 弹出框标题 | string \| slot | - | | value | 选中的时间范围 | [Date, Date] | - | | onOk | 点击确定按钮,触发回调 | (date: [Date, Date], dateStr: [string, string], event: [Event](https://opendocs.alipay.com/mini/framework/event-object)) => void | - | | onCancel | 点击取消按钮/蒙层,触发回调 | (event: [Event](https://opendocs.alipay.com/mini/framework/event-object)) => void | - | | onPickerChange | 选中项发生变化,触发回调 | (type: `start` \| `end`, date: Date, dateStr: string, event: [Event](https://opendocs.alipay.com/mini/framework/event-object)) => void | - | | onFormat | 选中值的文本显示格式 | (date: [Date, Date], dateStr: [string, string]) => string | - | | onFormatLabel | 自定义每列展示的内容,默认添加年、月、日、时、分、秒单位 | (type: `year` \| `month` \| `day` \| `hour` \| `minute`, value: number) => string | - | | onVisibleChange | 弹出框显示/隐藏状态变化触发 | (visible: boolean, event: [Event](https://opendocs.alipay.com/mini/framework/event-object)) => void | - | ## 如何获取 `YYYY-MM-DD` 格式的时间 DatePicker 组件返回的时间格式为 `Date` 类型,如果需要转换为 `YYYY-MM-DD` 格式,可以使用 [dayjs](https://day.js.org/docs/zh-CN/display/format) 进行转换。 ```xml ``` ```javascript Page({ handleOk(date) { const dateStr = dayjs(date).format('YYYY-MM-DD'); console.log(dateStr); } }); ```