我想做到以下几点,鉴于UTC格式两个日期:如何精确使用Moment.js格式化持续时间?
var start = "2014-01-13T06:00:00.0000000Z";
var end = "2014-01-13T14:16:04.0000000Z";
我希望得到确切时间跨度,这两个时刻之间穿过,如
8h 16m
我已经尝试使用以下内容:
var duration = moment(moment(end) - moment(start)).format('hh[h] mm[m]');
但是这不适用于天。而且,它不适用于数天,因为即使经过24小时,它们总是> = 1。
我也试过twix.js以获得长度,但其格式不支持创建上面指定的格式,或者我找不到在其文档中这样做的方式。基本上我在寻找确切版本的twix.humanizeLength()
。
Moment.js的a.diff(b)
只提供总的持续时间,它可以给我时间跨度以分钟,小时或天数的长短,但使用不余计算。
我目前的解决方案是使用diff
创建范围,然后使用模计算余,但这不是很优雅:
var days = moment(end).diff(start, 'days');
var hours = moment(end).diff(start, 'hours') % 24;
var minutes = moment(end).diff(start, 'minutes') % 60;
var duration = ((days > 0) ? days + 'd ' : '') + ((hours > 0) ? hours + 'h ' : '') + ((minutes > 0) ? minutes + 'm ' : '');
问题:有没有更聪明的办法请在moment.js或twix.js,或者我应该花些时间开发自己的moment.js插件?
我会看看功能请求会发生什么。目前,该插件做我想要的。 – ane