0
var i = 20040115102010000;

i++;

returns 20040115102010000;

我必须使用大数字库吗?

Javascript 中处理大数(BigNum)的标准解决方案是什么?

这个数字已经是浮点格式,我将小数点向左移动了 3 次。如果你很快,你会注意到这是一个约会。我应该先将此数字转换为日期格式吗?Date()我会发现在对象中以毫秒为单位增加更容易吗?

4

1 回答 1

2

你不能在 javascript 中使用这么大的日期,而不是创建一个 bigDay 库来处理你的 bignums。

/*

来自' https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date ':

JavaScript 日期以 UTC 时间 1970 年 1 月 1 日午夜以来的毫秒数为单位。一天有 86,400,000 毫秒。JavaScript Date 对象的范围是 -100,000,000 天到 100,000,000 天,相对于 1970 年 1 月 1 日 UTC。*/

var firstday=new Date(1970,0,1),lastday=new Date(1969,11,31);

firstday.setDate(firstday.getDate()-100000000);

lastday.setDate(lastday.getDate()+100000000);

firstday.toUTCString()+'; timestamp: '+firstday.getTime()+'\n'+
lastday.toUTCString()+'; timestamp: '+lastday.getTime();

/* 返回值:(JS中最大和最小的日期)

格林威治标准时间 4 月 20 日星期二 -271821 04:00:00;时间戳:-8639999985600000

格林威治标准时间 9 月 12 日星期五 275760 04:00:00;时间戳:8639999928000000 */

于 2013-03-10T03:03:15.607 回答