0

我有一个函数JavaScript来获得两次之间的差异:

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 回答