【问题标题】:What is toIsoString() in moment and why does it gives me time lesser then current time当下的 toIsoString() 是什么,为什么它给我的时间比当前时间少
【发布时间】:2016-11-16 06:28:41
【问题描述】:

好的,我有一个场景,我将日期与数据库中的日期进行比较。日期采用这种格式 "2016-11-16T18:00:19.000Z" 以及我使用的时间

var time = moment().toISOString();

我希望以上述格式获取当前日期,但它给我的结果大约晚了几个小时。 那么 toIsoString 是什么??

【问题讨论】:

  • 它以 ISO 格式返回时间,使用 UTC。如果你在本初子午线的“东边”,那么时间会更早。

标签: javascript node.js momentjs


【解决方案1】:

要了解toIsoString(),请参阅the documentation。

晚了几个小时,因为它与您的时区无关。

时区始终为 0 UTC 偏移量,由后缀“Z”表示。

【讨论】:

  • 因此,如果日期是使用 toIsoString 格式存储的,并且如果我需要显示存储日期的时间,我会从数据库中得到错误的值。
  • 或者确实需要再次格式化它们以匹配当前时间。我只是在这里感到困惑。
  • 使用Date('2013-03-10T02:00:00Z').toLocaleString() 格式化以匹配当地时区。
  • 还有一个问题:为什么我们要麻烦以 ISOString 格式存储日期,以便以后将其更改为当前时间以进行计算等。
  • @sacDahal 可能是因为您可以将其转换为查看页面的人的本地时区
【解决方案2】:

我猜你的本地时间和 UTC 之间的差异是一样的吗?

对于 Moment,日期始终被解释为 当地时间 (1)。 toISOString 函数始终返回 UTC 时间戳,即使参数是本地时间 (2)。

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 2015-06-20
    • 2019-08-31
    • 2011-05-08
    • 2015-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    相关资源
    最近更新 更多