所以我试图找到Javascript可以处理的最新Date
。
我把它降到了275760年9月,并且当我开始从illegal access
到new Date('09/24/275760')
获得未被捕获的new Date('10/13/275760')
例外时,这些日子增加了。在new Date('09/24/275760')
之前,new Date
正常工作并向我Invalid Date
提供new Date('10/13/275760')
后,new Date
再次开始正常工作并给了我Invalid Date
。< / p>
我查看了错误堆栈,它来自命令行界面,这并不是非常有用(除非它表明错误必须源自内部代码)。
所以问题是,为什么new Date
抛出错误而不是遵循在这些特定日期给出Invalid Date
的定义行为?
我在Mac OSX Yosemite(10.10.3)上运行Chrome 43.0.2357.81(64位)(官方版)。
这似乎只有在我使用字符串时才会发生(EX:new Date('10/01/275760')
)。见JSFiddle。但是,当使用整数参数(EX:new Date(275760, 10, 1)
)时,它似乎工作正常。感谢@abhitalks找到了这个。
答案 0 :(得分:5)
出于所有实际目的,最大日期应表示为:
var dt = new Date(8640000000000000)
var dt0 = new Date(275760, 8, 13);
var dt1 = new Date(275760, 9, 13);
var dt2 = new Date(275760, 9, 14);
var dt3 = new Date(8640000000000000);
var dt4 = new Date('275760-9-13');
console.log(dt0); // Sat Sep 13 275760 00:00:00 GMT
console.log(dt1); // Invalid Date (Reads October, 0-based month)
console.log(dt2); // Invalid Date
console.log(dt3); // Sat Sep 13 275760 05:30:00 GMT
console.log(dt4); // Sat Sep 13 275760 00:00:00 GMT