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

标签 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”

最佳答案

在你的问题中,这些行:

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;
}

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

完全没有必要转换为 UTC。

关于javascript - 获取两个日期对象之间的小时差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25956205/

相关文章:

java - 尝试计算两个日期之间的天数差异时的“no suitable method found for between(Date, Date)"

javascript - iMacros 脚本问题超时/错误消息/popupignore 等

javascript - 如何使用 jquery 更改标签上的永久颜色?

java - 以整数形式保存并比较时间

Javascript Date() 给出错误的值

sql - 按 3 个月期间分组

javascript - 如何使用 dc.js 创建单行堆叠行图表?

javascript - 未捕获的语法错误 : missing ) after argument list ERROR ON JS

javascript - Angular 2 不检测@HostBinding 的变化

Mysql更新日期字段为1年