AntD使用Form表单DatePicker时间组件时间差一天bug

AntD使用Form表单DatePicker时间组件时间差一天bug

发现问题

在使用AntD使用Form表单DatePicker时间组件的时候,测试意外测出一个历史bug,很神奇,时间会差一天!直接使用Form表单并提交时间会显示时间是Object类型,选择2022-06-14,保存的时候会变成2022-06-13 14:03:52(具体时间后缀),可能是时间组件为英文的原因?转换为中文后日期还是没有转过来,就差了一天……

解决办法
//保存时用方法转一下日期
if(typeof(item.date) === 'object') {
   item.date= moment(new Date(item.date)).format("YYYY-MM-DD");
}
具体原因

为什么要判断日期为object呢?因为第一次时间为object类型,转换完变成了string类型,如果第一次表单中有其他项填写错误,表单会报错,提示重新填写,这个时候再保存会再次触发moment(new Date(item.date)).format(“YYYY-MM-DD”)函数。但是因为日期已经转换为string类型了,日期也转换正确了,再使用这个函数页面会崩掉,显示空白,提示方法错误,因此需要判断一下初始日期的格式~

温馨提示
//页面需要引用moment库
import moment from 'moment';

版权声明:本文为weixin_44912745原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。