该模式不是构造函数的官方支持格式。Firefox似乎支持它,但不要指望其他浏览器也这样做。yyyy-MM-dd
Date
以下是一些受支持的字符串:
- 月-日-年
- yyyy/mm/dd
- 月/日/年
- 嗯嗯嗯
- 嗯嗯嗯
DateJS似乎是一个很好的库,用于解析非标准日期格式。
编辑:刚刚检查了ECMA-262标准。引用第15.9.1.15节:
日期时间字符串格式
ECMAScript 根据 ISO 8601 扩展格式的简化,为日期时间定义了字符串交换格式。格式如下: YYYY-MM-DDTHH:mm:ss.sssZ 其中的字段如下所示:
- YYYY 是公历中年份的十进制数字。
- “-”(虹吸音)在字符串中字面上出现两次。
- MM是一年中从01(1月)到12(12月)的月份。
- DD 是一个月中从 01 到 31 的日期。
- “T”按字面意思出现在字符串中,以指示 time 元素的开头。
- HH 是自午夜以来以两位小数位表示的完整小时数。
- “:”(冒号)在字符串中字面上出现两次。
- mm 是自小时开始以来以两位小数位表示的完整分钟数。
- ss 是自分钟开始以来的完整秒数,以两位小数位表示。
- "."(点)按字面意思出现在字符串中。
- sss 是自秒开始以来的完整毫秒数,为三位小数。“.”和毫秒字段都可以省略。
- Z 是指定为“Z”(表示 UTC)或“+”或“-”后跟时间表达式 hh:mm 的时区偏移量
此格式包括仅日期表单:
它还包括附加了可选时区偏移量的纯时间表单:
- 高度:毫米
- THH:mm:ss
- THH:mm:ss.sss
还包括“日期时间”,可以是上述内容的任意组合。
因此,似乎YYYY-MM-DD包含在标准中,但由于某种原因,Safari不支持它。
更新:在查看了datejs文档并使用它之后,您的问题应该使用如下代码来解决:
var myDate1 = Date.parseExact("29-11-2010", "dd-MM-yyyy");
var myDate2 = Date.parseExact("11-29-2010", "MM-dd-yyyy");
var myDate3 = Date.parseExact("2010-11-29", "yyyy-MM-dd");
var myDate4 = Date.parseExact("2010-29-11", "yyyy-dd-MM");