未记录的支持 Date.parse 格式?

2024-01-01

MDN's 的文档Date.parse https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/parse says:

参数

dateString一个字符串代表一个RFC822 or ISO 8601 date.

描述

parse 方法采用日期字符串(例如“1995 年 12 月 25 日”)并返回自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数。本地时区用于解释不包含时区信息的参数。此函数对于根据字符串值设置日期值非常有用,例如与 setTime 方法和 Date 对象结合使用。

给定一个表示时间的字符串,parse 返回时间值。它接受 RFC822 / IETF 日期语法(RFC 1123 第 5.2.14 节及其他部分),例如“1995 年 12 月 25 日星期一 13:30:00 GMT”。它可以理解美国大陆时区缩写,但对于一般用途,请使用时区偏移量,例如“Mon, 25 Dec 1995 13:30:00 GMT+0430”(格林威治以东 4 小时 30 分钟)子午线)。如果不指定时区,则假定为本地时区。 GMT 和 UTC 被认为是等效的。

或者,日期/时间字符串可以采用 ISO 8601 格式。从 JavaScript 1.8.5 / Firefox 4 开始,支持 ISO 8601 的子集。例如,“2011-10-10”(仅日期)或“2011-10-10T14:48:00(日期和时间)”可以传递和解析。尚不支持 ISO 日期中的时区,因此例如“2011-10-10T14:48:00+0200”(带时区)尚未给出预期结果。

However:

var t = new Date("4/25/2010");
console.log(t);

// Output: Sun Apr 25 2010 00:00:00 GMT+0100 (GMT Daylight Time)

哪里写到应该support http://jsbin.com/utusiz/9/edit the MM/dd/yyyy格式?


事实并非如此。这基线要求 http://es5.github.com/#x15.9.1.15规范中概述了但允许实现支持他们选择的其他格式 http://es5.github.com/#x15.9.4.2.

该字符串可能会被解释为本地时间、UTC 时间或其他时区的时间,具体取决于字符串的内容。该函数首先尝试根据日期时间字符串格式 (15.9.1.15) 中调用的规则解析字符串的格式。如果字符串不符合该格式,则该函数可能会回退到任何特定于实现的启发法或特定于实现的日期格式。

显然,这些格式可能有很大差异,并且一些常用的格式是不明确的,例如“1/2/1970”,它可能是二月一日或一月二日。如果要编写跨平台代码,仅依赖15.9.1.15中的基线格式。

EDIT:

关于 YYYY-MM-DD 和 YYYY/MM/DD 之间的区别,第一个指定为返回时间为零的日期,而第二个未指定,因此允许实现生成它喜欢的任何日期。 sepc 的相关部分是

此格式包括仅日期形式:

  • YYYY
  • YYYY-MM
  • 年-月-日

...

所有数字必须以 10 为基数。如果 MM 或 DD 字段不存在,则使用“01”作为值。如果 mm 或 ss 字段不存在,则使用“00”作为值,并且不存在的 sss 文件的值为“000”。不存在的时区偏移的值为“Z”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

未记录的支持 Date.parse 格式? 的相关文章

随机推荐