4

今日から特定の日付までの日数を計算し、今日まであと何日か、今日から何日後かを調べたいと思います。

var today = new Date();
var date_to_reply = new Date('2012-10-15');
var timeinmilisec = today.getTime() - date_to_reply.getTime();
console.log( Math.floor(timeinmilisec / (1000 * 60 * 60 * 24)) );

これは私に答えとして5を与えますが、date_to_replyが今日から5日過ぎているので、どうすれば(-5)を得ることができますか?

これは、特定の日付を計算する正しい方法ですか?

よろしく

4

4 に答える 4

7

あなたがしていることは正しいです: 2 つの日付の(日数) を計算したいのです。差をゼロより小さくすることはできません。

すでに過ぎていますdate_to_replyが、まだ 5 日間の差があります。

ですから、すべて問題ありません。これが正しい方法です。

編集:結果として負の値が必要な場合は、これを試してください:

var today = new Date();
var date_to_reply = new Date('2012-10-15');
var timeinmilisec = date_to_reply.getTime() - today.getTime();
console.log( Math.ceil(timeinmilisec / (1000 * 60 * 60 * 24)) );

Math.ceilで切り捨てるのではなく、最終結果が必要であることを忘れないでくださいMath.floor()

于 2012-10-20T07:02:50.010 に答える
1

値を負にしたい (date_to_reply過去であることを示す) 場合は、現在の日付から過去の日付を減算する必要がありますdate_to_reply.getTime() - today.getTime()

より差別化された結果を計算する方法については、このリンクを確認してください。

于 2012-10-20T07:04:41.227 に答える
1

日付の順序を入れ替えると、必要な負の数が得られます。

さらに良いのは、これを行う関数を作成することです。

2 番目のパラメータから最初のパラメータを減算できます。

2 番目のパラメーターは、デフォルトで今日になる可能性があります。

function diffDates(dateOne, dateTwo) {
    if (typeof dateTwo === 'undefined') {
        dateTwo = new Date();
    }
    return dateOne.getTime() - dateTwo.getTime();
}

関数を日付ではなく数値で操作する方がよいでしょう。

そのほうが柔軟ですが、今は iPad で入力しています。

于 2012-10-20T07:06:44.393 に答える
0

今日の日付が前の日付よりも大きいため、それは明らかです。したがって、自分で負にするか、これを使用する必要があります

var timeinmilisec = date_to_reply.getTime()-today.getTime();
于 2012-10-20T07:10:11.227 に答える