1

我正在尝试在 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

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

提前为任何帮助欢呼。:)

4

1 回答 1

1

如果不出意外,在 2005 年和 2008 年(都在 12 月 31 日)发生了两个闰秒,这两个应用程序都可以考虑到这一点。您已将 JS 日期明确设置为“中午”,但没有为 Excel 指定时间,因此它可能默认为午夜,即闰秒发生的时间。这会使您的 Excel 日期/时间与 JS 计算相差 2 秒,并且可能会越过午夜边界,从而导致您错过一天。

于 2012-01-19T21:50:56.100 回答