0

JavaScript2つの時間の差を取得する関数があります:

function get_time_difference(laterDate) {
    var earlierDate = new Date();//Now
    var nTotalDiff = laterDate.getTime() - earlierDate.getTime();
    var oDiff = new Object();

    oDiff.days = Math.floor(nTotalDiff / 1000 / 60 / 60 / 24);
    nTotalDiff -= oDiff.days * 1000 * 60 * 60 * 24;

    oDiff.hours = Math.floor(nTotalDiff / 1000 / 60 / 60);
    nTotalDiff -= oDiff.hours * 1000 * 60 * 60;

    oDiff.minutes = Math.floor(nTotalDiff / 1000 / 60);
    nTotalDiff -= oDiff.minutes * 1000 * 60;

    oDiff.seconds = Math.floor(nTotalDiff / 1000);

    if (0 == oDiff.minutes && 0 == oDiff.hours) {
        //Do Something
    }
    return oDiff.minutes;
}

時間が等しい場合、特定の関数を実行する必要があります。

私の問題は、彼が59分を返すことがありますが、0を返す必要があることです..

なぜこうなった?どうすればこれを修正できますか?

4

2 に答える 2

1

私はこのように修正します:

function get_time_difference(laterDate) {

var earlierDate = new Date(); //Now
var oDiff = new Object();

oDiff.days = laterDate.getDate() - earlierDate.getDate();
oDiff.hours = laterDate.getHours() - earlierDate.getHours();
oDiff.minutes = laterDate.getMinutes() - earlierDate.getMinutes();
oDiff.seconds = laterDate.getSeconds() - earlierDate.getSeconds();

if (0 == oDiff.minutes && 0 == oDiff.hours) {
//Do Something
}
   return oDiff.minutes;
}
于 2013-01-17T08:49:26.893 に答える
0

成功する

function get_time_difference(laterDate) {

var earlierDate = new Date();//Now
var nTotalDiff = laterDate.getTime() - earlierDate.getTime();
var oDiff = new Object();

oDiff.days = Math.floor(nTotalDiff / (1000 * 60 * 60 * 24 ));
nTotalDiff -= oDiff.days * 1000 * 60 * 60 * 24;

oDiff.hours = Math.floor(nTotalDiff / (1000 * 60 * 60 ));
nTotalDiff -= oDiff.hours * 1000 * 60 * 60;

oDiff.minutes = Math.floor(nTotalDiff / (1000 * 60 ));
nTotalDiff -= oDiff.minutes * 1000 * 60;

oDiff.seconds = Math.floor(nTotalDiff / 1000);

if (0 == oDiff.minutes && 0 == oDiff.hours) {
//Do Something
}
return oDiff.minutes;

}

分割しているものを最初に評価する必要があることを確認する必要があります

于 2013-01-17T07:56:35.463 に答える