获取两个日期对象之间的小时差异?

时间:2014-09-21 05:44:29

标签: javascript date

尝试将此功能从Get difference between 2 dates in javascript?更改为以小时而非天为单位返回差异,但到目前为止还没有运气。 =)

function dateDiffInDays(scheduled, due) {
    var _MS_PER_DAY = 1000 * 60 * 60 * 24;
    var scheduled = new Date(scheduled);
    var due = new Date(due);
    var utc1 = Date.UTC(scheduled.getFullYear(), scheduled.getMonth(), scheduled.getDate());
    var utc2 = Date.UTC(due.getFullYear(), due.getMonth(), due.getDate());
    return Math.floor((utc2 - utc1) / _MS_PER_DAY);
}

_MS_PER_DAY更改为1000 * 60 * 60,但它无法返回零。请帮忙。

编辑:时间表的值和此格式的到期日:“09/21/2014 09:00:00 am”

1 个答案:

答案 0 :(得分:1)

在你的问题中,这些行:

var utc1 = Date.UTC(scheduled.getFullYear(), scheduled.getMonth(), scheduled.getDate());
var utc2 = Date.UTC(due.getFullYear(), due.getMonth(), due.getDate());

擦洗小时/分钟/等。来自日期的信息,因此如果两个日期属于同一天,则结果将始终为零。

可以使用更简单的函数来获得小时数差异(十进制数):

function dateDiffInHours(date1, date2) {
    var msDiff = date2.getTime() - date1.getTime();
    return msDiff / 3600000;
}

或者,如果您希望将其作为舍入/覆盖的int,则将Math.round()Math.floor()应用于返回的结果。

根本不需要转换为UTC。