Excel和javascript日期计算不同

时间:2012-01-19 21:46:18

标签: javascript excel date datejs

我正在尝试在javascript中进行与excel匹配的日期计算。

//Excel 
=(EDATE(DATE(2000,6,1),60)-DATE(2012,1,20))

这给出了-2424的结果

所以我尝试使用以下

在javascript中进行相同的计算
//Javascript -  using datejs library
a = Date.parse('2000/06/01').addMonths(60);
b = Date.parse('2012/01/20');
a.setHours(12,0,0);
b.setHours(12,0,0);
span = new TimeSpan(a - b);
console.log(span.getDays());

这给出了-2423的结果

我不明白为什么我要失去一天。 任何人都可以了解这是如何发生的。

提前为任何帮助干杯。 :)

1 个答案:

答案 0 :(得分:1)

如果没有别的,在2005年和2008年(两者都在12月31日)发生了两次跳跃,这两个应用程序都可以考虑在内。你已经明确地将你的JS日期设置为“中午”,但是没有为Excel指定任何时间,所以它可能默认为午夜,即跳跃发生的时间。这会使你的Excel日期/时间与JS计算结果相差2秒,并且可以越过午夜边界,占你失踪的一天。