1

Excelの日付と一致するJavaScriptで日付計算を実行しようとしています。

//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日)に2つの飛躍が発生しました。これは、どちらのアプリも考慮に入れることができます。JSの日付を明示的に「正午」に設定しましたが、Excelには時刻を指定しなかったため、デフォルトでは、リープセカンドが発生する深夜に設定されている可能性があります。これにより、Excelの日付/時刻がJS計算から2秒ずれ、真夜中の境界を越えて、1日の欠落分を占める可能性があります。

于 2012-01-19T21:50:56.100 に答える