antd中DatePicker选择此刻获取的时间不正确(多了8小时)解决办法

编程入门 行业动态 更新时间:2024-10-17 15:32:06

antd中DatePicker选择此刻获取的时间不正确(多了8小时)<a href=https://www.elefans.com/category/jswz/34/1767401.html style=解决办法"/>

antd中DatePicker选择此刻获取的时间不正确(多了8小时)解决办法

1、现象

点击“此刻”后,可以看到在DatePicker上时间(1)和打印出来的dateString(3)是一致的,是当前的时间;而value(2)是moment数据,时间却多了8小时。

在线地址:

2、解决办法

可以看到,onChange的第二个参数已经是正确的时间,如果需要再用new Date(dateString)处理一下就获得了Date类型数据;

或者也可以就用第一个参数,new Date(value.format('YYYY-MM-DD HH:mm:ss'));只是需要把moment格式化一下。

3、产生原因

到ant-design的git里找到了同样问题的issue,根据里面大佬说:

a.因为点击 Now/今天/此刻 那个按钮时,moment 对象会经过 getTodayTime设置了 utcOffset

b.utcOffset 会把 moment 对象的 _isUTC 设为 true 并设置 _offset (在上面第一张截图console中可以看到)

而点击日期面板时的 moment 对象没有经过类似的处理,所以其实点击日期面板和 Now/今天/此刻 按钮时得到的 moment 对象其实是略有不同的。

// 日期面板 moment 对象
{_isUTC: false,
}// 现在、今天按钮的 moment 对象
{_isUTC: true,_offset: 480,
}

issue:日期选择框点击此刻返回moment对象中的时间多加了8个小时 #6236

更多推荐

antd中DatePicker选择此刻获取的时间不正确(多了8小时)解决办法

本文发布于:2024-02-06 11:30:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1748308.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:解决办法   不正确   小时   时间   antd

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!