我试图找到 JavaScript 能处理的最新日期。我将其确定为 275760 年 9 月,并在遇到未捕获的 “非法访问” 异常之前增加了天数,范围从 new Date('09/24/275760')
到 new Date('10/13/275760')
。在 new Date('09/24/275760')
之前,new Date
正常工作并给出“无效日期”,在 new Date('10/13/275760')
之后,new Date
再次正常工作并给出“无效日期”。
我查看了错误堆栈,发现它起源于命令行界面,这对我没什么帮助(除了表明该错误必须源于内部代码)。
因此问题是,为什么 new Date
在这些特定日期上抛出错误,而不是按照定义的行为给出“无效日期”呢?
我的操作系统是 Mac OSX Yosemite (10.10.3),浏览器是 Chrome 43.0.2357.81 (64 位)(正式版本)。
编辑
只有当我使用字符串时才会出现这种情况(例如:new Date('10/01/275760')
)。请参见此 JSFiddle 。然而,当使用整数参数时(例如:new Date(275760, 10, 1)
),它似乎工作正常。感谢 @abhitalks 发现这个问题。
new Date('10/01/275760')
抛出错误而不是像其他日期一样返回“无效日期”的答案,而不是询问未来支持的最远日期是什么。你有任何对这种奇怪行为的解释吗? - rgajrawala