2017-09-13 7 views
1

私はmoment.diff関数を使用して2つの日付間の時間を計算しています。文字列として渡された日付でmoment.diff関数が正しく動作しない

私のコードは次のようである:

function calculateDurationBetweenDates(now, then){  
    if(!now || !then){   
     return;   
    } 

    var ms = moment(then, "DD-MM-YYYY HH:mm:ss").diff(moment(now, "DD-MM-YYYY HH:mm:ss"));   
    var d = moment.duration(ms);   
    var s = Math.floor(d.asHours()) + moment.utc(ms).format(":mm:ss"); 

    return s; 
} 

calculateDurationBetweenDates ("2016-10-08 11:29:23","2016-10-08 10:29:23"); 

これは私が-1:00:00として否定につながる提供します。

私はその理由を理解していません。周りの日付

+0

おそらくタイムゾーンに問題がありますか? – Meloman

+3

私は問題を見ません...それらの日付の間に正確に1時間の違いがあります...番号が否定的であるという事実に悩まされていますか?もしそうなら、日付を逆にしたり、 'Math.abs()'を使ってください。また、フォーマットが間違っていて、 'YYYY-MM-DD'と* NOT *' DD-MM-YYYY'でなければなりません。 – Eric

答えて

0

スイッチ:あなたが後日以前の日付間の差分を求めている場合

var ms = moment(now, "DD-MM-YYYY HH:mm:ss").diff(moment(then, "DD-MM-YYYY HH:mm:ss"));

否定は予想される応答です。あなたは、ネガティブではないだけのスイッチを丸くしたいと思っています。

関連する問題