计算日期时间范围时遇到一些问题。我想要完成的是让时刻在几小时内为我提供差异。
例如,这是我的脚本:
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/。
答案 0 :(得分:8)
您需要将dataString = dataString.TrimEnd('\r');
包含在diff
:
duration
答案 1 :(得分:1)
这比公认的答案更简洁:
const startTime = moment('2016-02-21 18:00', 'YYYY/MM/DD HH:mm');
const endTime = moment('2016-02-21 19:30', 'YYYY/MM/DD HH:mm');
const hoursDiff = endTime.diff(startTime, 'hours', true);
console.log(hoursDiff); // 1.5