Dan*_*son 4 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);
Run Code Online (Sandbox Code Playgroud)
我期待我的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)
Run Code Online (Sandbox Code Playgroud)
有人会有任何想法吗?
这是一个完整的例子https://jsfiddle.net/ewmq6sof/.
chr*_*con 11
你需要将difference 包装在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
Run Code Online (Sandbox Code Playgroud)
这比公认的答案更简洁:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4560 次 |
| 最近记录: |