zent
Version:
一套前端设计语言和基于React的实现
113 lines (95 loc) • 5.49 kB
Markdown
# zent-datetimepicker
[](https://www.npmjs.com/package/zent-datetimepicker) [](https://www.npmjs.com/package/zent-datetimepicker)
时间选择组件, 提供基础的时间、日期筛选功能.
## 使用场景
有时间、日期筛选需求的页面。
## API
### DateTimePicker
| 参数 | 说明 | 类型 | 默认值 | 是否必须 |
| ------------ | ------------------------ | -------------- | --------------- | ---- |
| className | 额外的 css 类 | string | `''` | 否 |
| prefix | 自定义前缀 | string | `'zent'` | 否 |
| value | 默认选择日期 | string/Date | `new Date()` | 否 |
| max | 可选日期的最大值 | string/Date | `` | 否 |
| min | 可选日期的最小值 | string/Date | `` | 否 |
| format | 返回日期字符串格式 | string | `'yyyy-mm-dd'` | 否 |
| disabled | 是否处于disabled 状态 | boolean | `false` | 否 |
| placeholder | 提示文案 | string | `请选择日期` | 否 |
| showTime | 是否显示时间筛选 | boolean | `false` | 否 |
| disabledTime | 时间禁用函数,范围boolean是否禁用 | func | `noop` | 否 |
| disabledDate | 判断日期是否可选函数 | func | `noop` | 否 |
| onChange | 确认日期回调函数 | func | `noop` | 是 |
** 注意:**
- disabledDate 函数调用时会传入一个 date 对象作为参数,用户可以自定义这个 date 是否处于禁用区间,
返回 true/false,需要特殊的禁用规则时可以通过这个函数来实现,一般情况下使用 max 和 min 就可以满足需求。
- max/min 和 disabledDate 会存在冲突,同时存在的时候以 disabledDate 的返回值为准。
- disabledTime 函数应该返回一个对象,对象中包含`disabledHour`,`disabledMinute`,`disabledSecond` 三个函数。
```
isDisabledTime = () => {
const disabledHour = (val) => {
return val < 12;
};
const disabledMinute = (val) => {
return val > 30;
};
const disabledSecond = (val) => {
return val < 20;
};
return {
disabledHour,
disabledMinute,
disabledSecond
};
}
```
更详细用法请看示例。
### MonthPicker
| 参数 | 说明 | 类型 | 默认值 | 是否必须 |
| ------------ | ---------- | ------ | ------------ | ---- |
| className | 额外的 css 类 | string | `''` | 否 |
| prefix | 自定义前缀 | string | `'zent'` | 否 |
| value | 选中的月份 | string/Date | `new Date()` | 否 |
| format | 返回月份字符串格式 | string | `'yyyy-mm'` | 否 |
| disabled | 是否处于disabled 状态 | boolean | `false` | 否 |
| placeholder | 提示文案 | string | `请选择月份` | 否 |
| onChange | 确认日期回调函数 | func | `noop` | 是 |
<!--### TimePicker
| 参数 | 说明 | 类型 | 默认值 | 是否必须 |
| ------------ | ---------- | ------ | ------------ | ---- |
| className | 额外的 css 类 | string | `''` | 否 |
| prefix | 自定义前缀 | string | `'zent'` | 否 |
| disabledTime | 判断日期是否可选函数 | func | `noop` | 否 |
| onChange | 确认日期回调函数 | func | `noop` | 是 |
| format | 返回日期字符串格式 | string | `'HH:MM:ss'` | 否 |-->
### RangePicker
| 参数 | 说明 | 类型 | 默认值 | 是否必须 |
| ------------ | ---------- | ------ | -------------- | ---- |
| className | 额外的 css 类 | string | `''` | 否 |
| prefix | 自定义前缀 | string | `'zent'` | 否 |
| value | 默认选择日期 | array | `[]` | 否 |
| format | 返回日期字符串格式 | string | `'yyyy-mm-dd'` | 否 |
| placeholder | 提示文案 | string | `开始日期~结束日期` | 否 |
| disabledDate | 判断日期是否可选函数 | func | `noop` | 否 |
| showTime | 是否显示时间筛选 | boolean| `false` | 否 |
| onChange | 确认日期回调函数 | func | `noop` | 是 |
**注意:**
- `showTime` 的时候,传入的 `disabledDate` 如果为数组,必须有 time 部分,即 `2017-01-01 11:11:11` 这样。
- `disabledTime` 和 DatePicker 的类似,区别在于被调用时会传入一个 `type` 参数,值为 `start/end`,参照上面的 disabledTime 函数, RangePicker 的版本如下:
```
isDisabledRangeTime(type) {
const disabledHour = (val) => {
return type === 'start' ? val < 12 : val > 12;
};
const disabledMinute = (val) => {
return type === 'start' ? val > 30 : val > 30;
};
const disabledSecond = (val) => {
return type === 'start' ? val < 20 : val > 40;
};
return {
disabledHour,
disabledMinute,
disabledSecond
};
}
```