我正在尝试在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的结果
我不明白为什么我要失去一天。 任何人都可以了解这是如何发生的。
提前为任何帮助干杯。 :)
答案 0 :(得分:1)
如果没有别的,在2005年和2008年(两者都在12月31日)发生了两次跳跃,这两个应用程序都可以考虑在内。你已经明确地将你的JS日期设置为“中午”,但是没有为Excel指定任何时间,所以它可能默认为午夜,即跳跃发生的时间。这会使你的Excel日期/时间与JS计算结果相差2秒,并且可以越过午夜边界,占你失踪的一天。