【问题标题】:Understanding Date.prototype.toISOString() ISO 8601 format?了解 Date.prototype.toISOString() ISO 8601 格式?
【发布时间】:2021-02-25 12:46:19
【问题描述】:

引用MDN:

toISOString() 方法以简化的扩展 ISO 格式 (ISO 8601) 返回一个字符串,该字符串的长度始终为 24 或 27 个字符(YYYY-MM-DDTHH:mm:ss.sssZ 或 ±YYYYYY-MM- DDTHH:mm:ss.sssZ)。

  1. 第二个格式±YYYYYY-MM-DDTHH:mm:ss.sssZ什么时候返回?
  2. ±YYYYYY-MM-DDTHH:mm:ss.sssZ开头的±YY是什么意思?

【问题讨论】:

  • MDN 是一个社区资源,它不是规范的。 ECMA-262 是 权限,请参阅§21.4.1.15。额外的数字用于 ISO 8601 扩展年份格式,它允许日期涵盖自 1970 年起的 ±273,790 年,这是 ECMAScript 日期的可能范围。在实践中,您永远不应该看到超过 4 位数的年份。

标签: javascript date iso8601


【解决方案1】:

正如the spec所说,它会在公元1年之前返回:

const d = new Date()
// Thu Feb 25 2021 14:49:43 GMT+0200 (Eastern European Standard Time)
d.setFullYear(-7731)
// -306129149405605
console.log(d.toISOString())
// "-007731-02-25T13:09:54.395Z"

或适当的远在未来。

const d = new Date();
d.setFullYear(11931)
// 314343550183395
console.log(d.toISOString())
// "+011931-02-25T12:49:43.395Z"

【讨论】:

    猜你喜欢
    • 2017-02-01
    • 2021-12-15
    • 2019-04-08
    相关资源
    最近更新 更多