DatePicker 日期选择

用于选择日期或者时间。

规则

  • 最多展示 5 个独立滚轮,每个滚轮表示一个不同的值。

代码演示

基本

日期时间选择示例 (rc-form 文档)

  1. import { DatePicker, List } from 'antd-mobile';
  2. import { createForm } from 'rc-form';
  3. import moment from 'moment';
  4. import 'moment/locale/zh-cn';
  5. import enUs from 'antd-mobile/lib/date-picker/locale/en_US';
  6. const zhNow = moment().locale('zh-cn').utcOffset(8);
  7. const maxDate = moment('2018-12-03 +0800', 'YYYY-MM-DD Z').utcOffset(8);
  8. const minDate = moment('2015-08-06 +0800', 'YYYY-MM-DD Z').utcOffset(8);
  9. const maxTime = moment('22:00 +0800', 'HH:mm Z').utcOffset(8);
  10. const minTime = moment('00:30 +0800', 'HH:mm Z').utcOffset(8);
  11. const gmtNow = moment().utcOffset(0);
  12. let Test = React.createClass({
  13. getInitialState() {
  14. return {
  15. date: zhNow,
  16. };
  17. },
  18. onChange(date) {
  19. // console.log('onChange', date);
  20. this.setState({
  21. date,
  22. });
  23. },
  24. render() {
  25. const { getFieldProps } = this.props.form;
  26. return (<div>
  27. <List style={{ backgroundColor: 'white' }}>
  28. <List.Header>选择时间</List.Header>
  29. <List.Body>
  30. <DatePicker
  31. mode="date"
  32. title="选择日期"
  33. extra="可选,小于结束日期"
  34. {...getFieldProps('date1', {
  35. initialValue: zhNow,
  36. })}
  37. minDate={minDate}
  38. maxDate={maxDate}
  39. >
  40. <List.Item arrow="horizontal">日期</List.Item>
  41. </DatePicker>
  42. <DatePicker mode="time" {...getFieldProps('time1')}>
  43. <List.Item arrow="horizontal">时间,不限定上下限</List.Item>
  44. </DatePicker>
  45. <DatePicker
  46. mode="time"
  47. {...getFieldProps('time', {
  48. initialValue: zhNow,
  49. })}
  50. minDate={minTime}
  51. maxDate={maxTime}
  52. >
  53. <List.Item arrow="horizontal">时间</List.Item>
  54. </DatePicker>
  55. <DatePicker className="forss"
  56. mode="datetime"
  57. onChange={this.onChange}
  58. value={this.state.date}
  59. >
  60. <List.Item arrow="horizontal">日期+时间</List.Item>
  61. </DatePicker>
  62. <DatePicker
  63. mode="time"
  64. format={val => val.format('HH:mm Z')}
  65. okText="Ok"
  66. dismissText="Cancel"
  67. locale={enUs}
  68. {...getFieldProps('customformat', {
  69. initialValue: gmtNow,
  70. })}
  71. >
  72. <List.Item arrow="horizontal">time(en_US)</List.Item>
  73. </DatePicker>
  74. </List.Body>
  75. </List>
  76. </div>);
  77. },
  78. });
  79. Test = createForm()(Test);
  80. ReactDOM.render(<Test />, mountNode);

DatePicker日期选择 - 图1

API

成员说明类型默认值
mode日期选择的类型,可以是日期date、时间time、日期+时间datetimeStringdate
value当前选中时间,各种mode下格式分别为:yyyy-MM-ddHH:mmyyyy-MM-dd HH:mmmoment
minDate最小可选日期,格式同valuemoment-
maxDate最大可选日期,格式同valuemoment-
onChange时间发生变化的回调function(date)
locale国际化配置 (可自行构造,结构为 {year, month, day, hour, minute})ObjectDatePicker.locale.zh_CN
okText选中的文案String确定
dismissText取消选中的文案String取消
title弹框的标题String
format格式化选中的值(value:moment) => string/string(val) => { return val; }
extraChildren如果是List.Item,则是extra属性的默认值, 如果是其它的UI组件,则value或者extra属性会经过format方法处理后传给children的extra属性,用户需要自己实现这个属性String请选择
style自定义内联样式Object{}