【问题标题】:DateTime in UTC with toISOStringUTC 中的日期时间与 toISOString
【发布时间】:2021-10-14 08:32:11
【问题描述】:

我有以下代码:

console.log(    
  new Date().toISOString()
)  

返回:2021-10-14T08:28:28.467Z 我认为它应该返回:2021-10-14T08:28:28.000Z。区别在于 000Z。在所有示例(文档)中,我看到它返回 000Z。就我而言,它没有。

如何确保我也获得了 000Z?

【问题讨论】:

  • 您可以通过示例like the one the MDN provides 了解这一点,因为创建了一个新的 Date 对象,它明确地没有任何毫秒。您只使用new Date(),它拥有它们,除非您的代码恰好在毫秒为零时执行,这有千分之一的机会发生。
  • 为什么它应该返回000Z? JavaScript 日期表示自 unix 纪元以来的 毫秒

标签: javascript datetime iso8601


【解决方案1】:

如果你自己设置日期,你会得到 0s 默认值,否则你会得到 hh,mm,ss,sss 语句执行时的时间 –

如果你想要 000,你必须设置毫秒

不知道为什么你会期待 000Z

const d = new Date()
d.setMilliseconds(0)
console.log(d.toISOString())

【讨论】:

  • 我不同的文档,他们没有设置毫秒。为什么要使用这些毫秒?
  • 他们为什么不这样做? The documentation shows them你有什么文件? ECMA
  • 检查您的第一个链接的文档。我没有看到 setMilliseconds 的任何预设。它确实输出000Z。所以没有秒。
  • @nhatimme 没有火箭科学。该页面上的两个示例创建了一个日期对象,并将其显式设置为05 October 2011 14:48 UTC。请注意,输入日期不包含任何秒和毫秒。您实际上应该问为什么 (new Date).toISOString() 不像那些 MDN 示例那样返回 :00 秒。
  • 如果你自己设置日期,你会得到 0s 默认值,否则你会得到语句执行时的 hh,mm,ss,sss 时间
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-09
  • 2021-04-26
  • 2021-05-14
  • 2011-07-11
  • 2023-03-20
相关资源
最近更新 更多