gpt4 book ai didi

javascript - 奇怪的日期错误, "uncaught illegal access"

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:04:29 27 4
gpt4 key购买 nike

所以我试图找到 Javascript 可以处理的最新 Date

我把它减少到 9 月 275760 并增加了我开始从 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

我查看了错误堆栈,它源自命令行界面,这并没有多大帮助(除了它表示错误一定源自内部代码这一事实)。

所以问题是,为什么 new Date 会抛出错误,而不是遵循在这些特定日期给出 Invalid 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为了找到这个。

最佳答案

  1. 根据此处的规范:http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.1 :时间的实际范围是 8,640,000,000,000,000 毫秒到 1970 年 1 月 1 日 UTC 的任一侧。因此,您将获得的最大有效日期是“Sep 13 275760”而不是“Sep 23”。
  2. 对于日期(字符串),字符串值应为 ISO8601(此处规范:http://www.w3.org/TR/NOTE-datetime),即“yyyy-mm-dd”。任何其他格式都被解析为本地时间,并受制于“回退到特定于实现的启发式”。因此,您看到的行为是特定于实现的。 (根据:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse)

出于所有实际目的,最大日期应表示为:

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

关于javascript - 奇怪的日期错误, "uncaught illegal access",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27598612/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com