React使用Antd的DatePicker遇到获取的时间不准确的问题

譬如我选择2018-05-01这个日期,
我后台获取到的日期时间是2018-05-01 02:08:17这个,并不是2018-05-01 00:00:00

网上查了下好像是时区的问题?不知道这个情况下该如何处理

阅读 8k
5 个回答

我觉得这个是format格式的问题.

它返回的是一个moment 默认的format好像是YYYY-MM-DD hh:mm:ss

关于时区 官方文档是这么说的:

// 默认语言为 en-US,如果你需要设置其他语言,推荐在入口文件全局设置 locale
// import moment from 'moment';
// import 'moment/locale/zh-cn';
// moment.locale('zh-cn');

<DatePicker defaultValue={moment('2015-01-01', 'YYYY-MM-DD')} />

文档

不能直接告诉你是哪里有问题,但是你可以试试打开调试工具,查看提交到服务器的数据是多少.

转成时间戳提交的吗

showTime={true}
看看呢

放在Form表单的 getFieldDecorator中,

{getFieldDecorator("time", {
  initialValue: data.time ? moment(data.time, format) : undefined,
  type: [{type: 'object'}]
})(<TimePicker minuteStep={30} format={format} placeholder="选择时间"/>)}

提交的时候需要对值处理一下:

this.props.form.validateFieldAndScrol(err, values) {
  if (!err) {
    axios.post(url, {
      time: values.time && values.time.format('HH:mm'),
    }).then(res => {

        ...
    })

  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题