【发布时间】:2023-02-10 07:28:51
【问题描述】:
如果选择开始为空。
当我选择日期 20/04/2022
日期选择器显示 20/04/2022
Console.log 显示 Wed Apr 20 2022 00:00:00 GMT+0200(中欧夏令时)
但我在表格上的有效负载显示 2022-04-19T22:00:00.000Z
我可以将格式锁定为 UTC 吗?
【问题讨论】:
-
UTC 不是一种格式,它是一个时区。这两个字符串实际上代表同一个
Date对象,并且可能是由同一个对象创建的——一个是人类可读的形式,另一个是可互操作的 ISO861 形式。 -
您使用的是什么日期选择器?
input type='date'的value 始终采用 ISO8601 格式,无论显示格式如何。 -
我正在使用 reactdatepicker.com,自定义输入只是 type="text"
-
react-datepicker返回本地时间的 Date 对象。那是......不幸的是,当你只想要约会时。尽管 JavaScript 没有仅限日期的对象,并且一个时区中的YYYY-MM-DDT00:00:00很可能代表另一个时区中的不同日期。在 JSON 中,日期以 UTZ(Z 后缀)或特定偏移量序列化为 ISO8601。所选的Date将在每个时区有不同的解释。您可以尝试通过utcOffset参数告诉datepicker使用0作为偏移量,以确保在序列化时不修改该值 -
也许您应该使用 Date.UTC 函数从日期选择器值创建 UTC 日期。如果您查看 Github 存储库,您会看到这个问题以不同的形式反复出现,例如like this issue。它也看起来像utcOffset doesn't work any more。支持不同偏移量的请求已关闭,因为无法修复
标签: react-datepicker