3

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

当我将这一刻字符串化时,它会将其转换为 ISO8601 格式,很好。然而,当我试图通过将它变成一个新的时刻来重新发挥它的作用时,它具有不同的价值。小时被时区转换所抵消。

它是这样的:

moment().hour();= 21

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

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

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

如何将片刻字符串化,然后使用保持不变的值再次解析它?

4

1 回答 1

0

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

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

然后声明:

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

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

凌乱的黑客虽然。

于 2013-05-20T22:40:13.260 回答