--- order: 6 title: zh-CN: 时间类控件 en-US: Time-related Controls --- ## zh-CN `antd@2.0` 之后,时间类组件的 `value` 改为 `moment` 类型,所以在提交前需要预处理。 ## en-US After `antd@2.0`, the `value` of time-related components had been changed to `moment`. So, we need to pre-process those values. ````jsx import { Form, DatePicker, TimePicker, Button } from 'antd'; const FormItem = Form.Item; const MonthPicker = DatePicker.MonthPicker; const RangePicker = DatePicker.RangePicker; class TimeRelatedForm extends React.Component { handleSubmit = (e) => { e.preventDefault(); this.props.form.validateFields((err, fieldsValue) => { if (err) { return; } // Should format date value before submit. const rangeValue = fieldsValue['range-picker']; const rangeTimeValue = fieldsValue['range-time-picker']; const values = { ...fieldsValue, 'date-picker': fieldsValue['date-picker'].format('YYYY-MM-DD'), 'date-time-picker': fieldsValue['date-time-picker'].format('YYYY-MM-DD HH:mm:ss'), 'month-picker': fieldsValue['month-picker'].format('YYYY-MM'), 'range-picker': [rangeValue[0].format('YYYY-MM-DD'), rangeValue[1].format('YYYY-MM-DD')], 'range-time-picker': [ rangeTimeValue[0].format('YYYY-MM-DD HH:mm:ss'), rangeTimeValue[1].format('YYYY-MM-DD HH:mm:ss'), ], 'time-picker': fieldsValue['time-picker'].format('HH:mm:ss'), }; console.log('Received values of form: ', values); }); } render() { const { getFieldDecorator } = this.props.form; const formItemLayout = { labelCol: { xs: { span: 24 }, sm: { span: 8 }, }, wrapperCol: { xs: { span: 24 }, sm: { span: 16 }, }, }; const config = { rules: [{ type: 'object', required: true, message: 'Please select time!' }], }; const rangeConfig = { rules: [{ type: 'array', required: true, message: 'Please select time!' }], }; return (
{getFieldDecorator('date-picker', config)( )} {getFieldDecorator('date-time-picker', config)( )} {getFieldDecorator('month-picker', config)( )} {getFieldDecorator('range-picker', rangeConfig)( )} {getFieldDecorator('range-time-picker', rangeConfig)( )} {getFieldDecorator('time-picker', config)( )}
); } } const WrappedTimeRelatedForm = Form.create()(TimeRelatedForm); ReactDOM.render(, mountNode); ````