javascript - Moment JS - 计算两个日期之间的持续时间(以小时为单位)

标签 javascript jquery momentjs

在计算日期时间范围时遇到一些问题。我想要完成的是让时刻为我提供时间上的差异。

例如,这是我的脚本:

    var startTime = $('2016-02-21 18:00');
    var endTime = $('2016-02-21 19:30');
    var hours = moment(endTime, 'YYYY/MM/DD HH:mm').diff(moment(startTime, 'YYYY/MM/DD HH:mm')).duration().asHours();
console.log(hours);

我期望我的 console.log(hours) 返回类似于 1.5(以小时为单位估计)的值。但相反,它返回了这个错误:

Uncaught TypeError: moment(...).diff(...).duration is not a function
    at <anonymous>:5:90
    at Object.InjectedScript._evaluateOn (<anonymous>:895:140)
    at Object.InjectedScript._evaluateAndWrap (<anonymous>:828:34)
    at Object.InjectedScript.evaluate (<anonymous>:694:21)

有没有人有什么想法?

这里有一个完整的例子 https://jsfiddle.net/ewmq6sof/ .

最佳答案

您需要将差异包含在duration中:

var startTime = '2016-02-21 18:00';
var endTime = '2016-02-21 19:30';
var hours = moment
        .duration(moment(endTime, 'YYYY/MM/DD HH:mm')
        .diff(moment(startTime, 'YYYY/MM/DD HH:mm'))
        ).asHours();
console.log(hours); // 1.5

关于javascript - Moment JS - 计算两个日期之间的持续时间(以小时为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35543294/

相关文章:

javascript - moment.diff 函数无法正确处理作为字符串传递的日期

javascript - 查找日期晚于当前日期的对象

javascript - jQuery悬停()不触发

javascript - 使用 javascript 将变量推送到现有函数

mysql - 用时刻解析MySQL日期

javascript - 通过ajax post将数据从js发送到php - 错误

jquery - 如何使用 jquery 通过单击复选框对元素列表进行排序?

javascript - 无法访问 Javascript 对象的值

javascript - 详细条件提交preventDefault

javascript - 获取 url opengraph 数据