bre*_*req 3 javascript momentjs
如何计算两次之间的持续时间?
var start = moment('17:00', "HH:mm");
var end = moment('02:15', "HH:mm");
moment.duration(end.diff(start)).asHours()
//outputs -14.75 instead of 9.15
Run Code Online (Sandbox Code Playgroud)
时刻构造函数默认为当前年,月和日,所以你的问题end就是之前的问题start.您可以使用比较变量isBefore,然后使用add"trasform" end到第二天.
请注意,asHours给出小数值(因此您将有9.25而不是9.15).如果你需要"9小时15分钟",你可以使用moment-duration-format插件(例如你在方法中'h[.]m'用作模板format).
这是一个工作样本:
var start = moment('17:00', "HH:mm");
var end = moment('02:15', "HH:mm");
if( end.isBefore(start) ){
end.add(1, 'day');
}
var dur = moment.duration(end.diff(start))
var result = dur.asHours();
document.writeln(result);
document.write(dur.format('h[.]m'));Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-duration-format/1.3.0/moment-duration-format.min.js"></script>Run Code Online (Sandbox Code Playgroud)