如果dateString没有年份,则默认年份为Date

时间:2016-11-09 09:56:05

标签: javascript date

我试图检查在发送部分值时会返回什么值。



var d = new Date("11/28");
console.log(d.toLocaleDateString())




我原以为28th Nov., 2016(current year),但它会返回28th Nov., 2001

所以问题是为什么 2001 被视为默认年度

2 个答案:

答案 0 :(得分:3)

2001不被视为默认年份。 这是一个Chrome问题,如果您使用Firefox运行相同的代码,则会获得Invalid Date

答案 1 :(得分:0)

language specification仅包含解析ISO 8601格式字符串的规则。解析任何其他格式是依赖于实现的(注意Date构造函数和Date.parse等效于解析)。

所以给出" 11/28"不是有效的ISO 8601字符串,实现可以自由应用它喜欢的任何启发式。任何结果,包括无效日期,都应该是预期的,并且实现之间的一致性不应该。