你能创建低于公元前271800的日期吗?像恐龙时间?

Dev*_*ney 9 javascript date object datepicker

这跟javascript日期一样低:

var myDate = new Date(0, 0, 1);
myDate.setFullYear("-271800");
alert(myDate);
Run Code Online (Sandbox Code Playgroud)

低于公元前-271,800的任何东西都会引发无效的日期错误.我们能回到一百万年了吗?还是十亿?日期对象是否允许您在过去或将来无限描述任何日期?我怎么能这样做?

Jam*_*e F 10

代表一百万年前的特定日期让我觉得毫无意义.朱利安日历?星期几应该尊重巴比伦系统吗?

为此创建自己的类型,确定您实际需要表示的内容.

---更新:这是被接受的,所以我将添加一些更具体的位.---

正如另一个答案中所提到的,根据EcmaScript规范,第五版第164页(链接是.pdf.)

自UTC时间1970年1月1日起,时间以ECMAScript为单位,以毫秒为单位.在时间值中,忽略闰秒.假设每天恰好有86,400,000毫秒.ECMAScript数值可以表示从-9,007,199,254,740,991到9,007,199,254,740,991的所有整数; 此范围足以测量从UTC时间1970年1月1日起向前或向后约285,616年内的任何瞬间的毫秒精度.

ECMAScript日期对象支持的实际时间范围略小:相对于UTC时间1970年1月1日午夜测量的时间恰好为-100,000,000天到100,000,000天.这给UTC时间1970年1月1日的任何一方提供了8,640,000,000,000,000毫秒的范围.

但是,这是理论日期.它忽略了一些现实.一百万年前的天数较短(12秒),因此一些JavaScript数学将是不准确的.已经用不同的系统确定了星期几.月份的定义不同.总而言之,决定你真正需要代表什么.