我在moment.js尝试过这个
moment.duration(375,'days').humanize()
Run Code Online (Sandbox Code Playgroud)
得到"一年"的答案,但我希望"一年零十天".在moment.js中有没有办法获得完整的人性化价值?
鉴于UTC格式中的两个日期,我想执行以下操作:
var start = "2014-01-13T06:00:00.0000000Z";
var end = "2014-01-13T14:16:04.0000000Z";
Run Code Online (Sandbox Code Playgroud)
我希望得到这两次之间经过的确切时间跨度,例如
8h 16m
Run Code Online (Sandbox Code Playgroud)
我尝试过使用以下内容:
var duration = moment(moment(end) - moment(start)).format('hh[h] mm[m]');
Run Code Online (Sandbox Code Playgroud)
但这不适用于几天.此外,它几天都不起作用,因为即使<24小时过去它们总是> = 1.
我也尝试了twix.js来获取长度,但它的格式不支持创建上面指定的格式,或者我在文档中找不到这样做的方法.基本上我正在寻找一个确切的版本twix.humanizeLength().
Moment.js的a.diff(b)只提供总的持续时间,它可以给我时间跨度以分钟,小时或天数的长短,但使用不余计算.
我目前的解决方案是使用diff创建范围,然后使用modulo来计算余数,但这不是很优雅:
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 + …Run Code Online (Sandbox Code Playgroud)