gpt4 book ai didi

javascript - 坚持 JavaScript 日期标准格式吗?

转载 作者:行者123 更新时间:2023-11-28 02:33:30 26 4
gpt4 key购买 nike

阅读后this question - 它还提供了文档链接,我仍然对文档有疑问。

MDN:Date.parse

A string representing an RFC2822 or ISO 8601 date.

好的,RFC2282 :

date-time       =       [ day-of-week "," ] date FWS time [CFWS]
day-of-week = ([FWS] day-name) / obs-day-of-week
day-name = "Mon" / "Tue" / "Wed" / "Thu" /
"Fri" / "Sat" / "Sun"

date = day month year
year = 4*DIGIT / obs-year
month = (FWS month-name FWS) / obs-month
month-name = "Jan" / "Feb" / "Mar" / "Apr" /
"May" / "Jun" / "Jul" / "Aug" /
"Sep" / "Oct" / "Nov" / "Dec"

day = ([FWS] 1*2DIGIT) / obs-day

现在 - ISO8601

 Year:
YYYY (eg 1997)
Year and month:
YYYY-MM (eg 1997-07)
Complete date:
YYYY-MM-DD (eg 1997-07-16)

好的。

问题:

  • MDN 提供了一个模式示例(正在运行)“1995 年 12 月 25 日”,在 2282 和 ISO 中都未找到。这个示例如何起作用?顺序必须是日月年(根据 2282)。

  • 标准中的分隔符为 [space](2282 中)和 ISO 中的[-]

    那么为什么这个示例有效(跨浏览器)? Date.parse("2011/11/23")

最佳答案

对于 Date.parse,请查看 EcmaScript specification, section 15.9.4.2 :

The String may be interpreted as a local time, a UTC time, or a time in some other time zone, depending on the contents of the String. The function first attempts to parse the format of the String according to the rules called out in Date Time String Format (15.9.1.15). If the String does not conform to that format the function may fall back to any implementation-specific heuristics or implementation-specific date formats. Unrecognizable Strings or dates containing illegal element values in the format String shall cause Date.parse to return NaN.

因此,MDN 的 Mozilla 特定文档与此非常接近。官方的“EcmaScript 日期时间字符串格式”是 ISO 8601 的子集,否则 Gecko 浏览器会尝试将其解释为 RFC 2822 甚至其他内容(这可能包括 “1995 年 12 月 25 日”)。我强烈怀疑 "2011/11/23" 确实可以跨浏览器工作,尽管对于最近的版本来说可能是这样。

关于javascript - 坚持 JavaScript 日期标准格式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13780706/

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