gpt4 book ai didi

javascript - 为什么 stringify 的 moment.js 日期在解析时返回不同的值

转载 作者:行者123 更新时间:2023-12-04 00:50:36 25 4
gpt4 key购买 nike

我有一个时刻想存储在本地存储中,并在以后使用 isBefore() 进行比较.

当我将这一刻字符串化时it converts it ISO8601格式,没问题。然而,当我试图通过将它变成一个新的时刻来使它重新发挥作用时,它具有不同的值(value)。时区转换会抵消小时数。

它是这样的:

时刻().hour(); = 21

JSON.stringify(moment()); = "2013-05-20T21:38:31.819Z"`

moment("2013-05-20T21:38:31.819Z").hour(); = 22

显然,这里的问题与 ISO8601 采用 UTC 格式这一事实有关,但无论我如何尝试使用 moment utc() 函数,它都不会改变下面的基本值不同这一事实。

我怎样才能将一个 moment 字符串化,然后在保持值不变的情况下再次解析它?

最佳答案

我的解决方法是强制 moment 在转换字符串时不使用 utc。因此,如果 foobar 是存储在本地存储中的对象:

foobar.expires = 2013-05-22T15:30:23.834Z

然后声明:

moment(foobar.expires, "YYYY-MM-DDTHH:MM:SS.SSS")

将返回存储在本地存储中时最初字符串化的同一时刻。

尽管是乱七八糟的 hack。

关于javascript - 为什么 stringify 的 moment.js 日期在解析时返回不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16654394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com