【发布时间】:2012-01-19 21:46:17
【问题描述】:
我正在尝试在 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 的结果
我不明白为什么我会失去一天。 任何人都可以阐明这是如何发生的。
提前为任何帮助干杯。 :)
【问题讨论】:
-
您可以尝试打印出
EDATE()和addMonths()计算的内容,看看它们是否引用了同一天? -
excel 结果是正确的:从 2005-06-01,你需要 30+31+31+30+31+30+31 到 2006-01-01,然后 365* 6+1(2008 闰年)到 2012-01-01,然后 19 天到 2012-01-20。
标签: javascript excel date datejs