0

イベントまでの残り日数を計算するスクリプトの一部があります。

var currTime = Math.round(new Date().getTime() / 1000.0);
var dispDate = event.find('UnixEpoch').text();
var diffDate = (dispDate - currTime) / 86400;
var dateRound = Math.round(diffDate) - 30;

最初の行は、現在のUnixエポック時間を取得し、ミリ秒を短縮します。2行目は、XMLフィードから将来​​のイベント日付を取得します。オンラインで両方の時間をエポック計算機に入れると、currTimeとdispDateの両方の正しい日付が得られます。しかし、それらを日数(3行目)に分割すると、最終結果は30日以上ずれているため、正しい日数を取得するには最後の行を使用する必要があります。

さて、それは十分に奇妙です。しかし、私が理解できない何かが起こっています。以前は31日オフでしたが、今は間違っているので、スクリプトを30日に変更しました。これは正しいことです。

誰かが私が間違っていることを指摘できますか?なぜこれが起こっているのかを一生理解することはできません。むしろ、それを微調整し続ける必要はありません。

4

2 に答える 2

1

一見すると、コードは問題ないように見えます。

currTime減算を実行する前に、の値をダンプしてみて、dispDateそれらが一貫しているかどうかを確認してください。

報告しているエラーは、コードの月の部分に1つずつエラーがあることを示しています。今月は30日、先月は31日でした。エラーの可能性のある場所は、event.find('UnixEpoch')通話内です。

于 2009-04-23T16:46:13.880 に答える
0

イベントの日付は他のJavascriptによって処理されていますか?この形式を使用する場合new Date(year, month, day, etc...)、月はゼロベースであるため、忘れがちです。

于 2009-04-23T17:58:11.087 に答える