gpt4 book ai didi

javascript - 假设输入是完整的 ISO 8601 字符串, `new Date(string)` 在现代浏览器中是否可靠?

转载 作者:行者123 更新时间:2023-12-05 00:32:03 24 4
gpt4 key购买 nike

有很多关于不使用 new Date(string) 的警告。 (或等效的 Date.parse(string) 在 javascript 中,因为浏览器不一致。MDN has this to say :

It is not recommended to use Date.parse as until ES5, parsing of strings was entirely implementation dependent. There are still many differences in how different hosts parse date strings, therefore date strings should be manually parsed (a library can help if many different formats are to be accommodated).


但是,当您继续阅读时,大多数关于特定于实现的行为的警告似乎都是针对这些场景的:
  • 旧浏览器(如 ES5 之前的旧浏览器)
  • 非 ISO 8601 输入(例如 "March 6th 2015" )
  • 不完整的 ISO 8601 输入(例如 "2015-06-03" ,没有时间或时区)

  • 我想知道的是,鉴于这两个假设:
  • 现代浏览器(比如说,从 2020 年开始)
  • 完整的 ISO 8601 输入(例如 "2021-11-26T23:04:00.778Z" )

  • 我可以可靠地使用 new Date(string) ?

    最佳答案

    是的。 JavaScript 中可接受的日期字符串的格式是标准化的:

    ECMAScript defines a string interchange format for date-times based upon a simplification of the ISO 8601 calendar date extended format. The format is as follows:


        YYYY-MM-DDTHH:mm:ss.sssZ

    来自 ECMAScript current draft在“日期时间字符串格式”部分标题下。
    这是解析规范中提出的日期字符串的唯一标准,因此日期库的目的是在调用 new Date 之前将日期格式化为这种格式。或 Date.parse .我无法评论 ISO 标准的“简化”是什么,但帖子中询问的格式与 [ECMAScript] 标准的格式相匹配。
    请注意,该标准继续说明仅限日期的表格

    YYYY
    YYYY-MM
    YYYY-MM-DD


    被接受并且时间格式,可选地后跟一个UTC偏移量,

    THH:mm
    THH:mm:ss
    THH:mm:ss.sss


    可以在日期组件之后使用。

    关于javascript - 假设输入是完整的 ISO 8601 字符串, `new Date(string)` 在现代浏览器中是否可靠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70130828/

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