Javascript 如何使用Moment.js精确设置时间持续时间的格式?
考虑到UTC格式中的两个日期,我希望执行以下操作:Javascript 如何使用Moment.js精确设置时间持续时间的格式?,javascript,momentjs,Javascript,Momentjs,考虑到UTC格式中的两个日期,我希望执行以下操作: 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]'); 但这不适用于白天。此外,它不适用于天,因
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]');
但这不适用于白天。此外,它不适用于天,因为它们总是>=1,即使在moment.js中有一个用于格式化持续时间的插件: 如果它不能满足您的需要,那么您应该扩展
矩.duration.fn
。如果您不支持很多地区,那么应该很简单
在任何情况下,我建议您阅读本文的主题。您可以尝试使用持续时间,但我不确定这些功能是否具有您想要的功能 此外,您还可以始终使用“时刻差”以毫秒为单位获取差值,然后根据需要对其进行格式化。这与您正在做的基本相同,但您只调用diff一次
function convertMilliSecondsIntoLegibleString(milliSecondsIn) {
var secsIn = milliSecondsIn / 1000;
var milliSecs = milliSecondsIn % 1000;
var hours = secsIn / 3600,
remainder = secsIn % 3600,
minutes = remainder / 60,
seconds = remainder % 60;
return ( hours + "h: "
+ minutes + "m: "
+ seconds +"s: " + milliSecs + "ms");
}
我将看看特性请求会发生什么。现在,这个插件满足了我的需求。
function convertMilliSecondsIntoLegibleString(milliSecondsIn) {
var secsIn = milliSecondsIn / 1000;
var milliSecs = milliSecondsIn % 1000;
var hours = secsIn / 3600,
remainder = secsIn % 3600,
minutes = remainder / 60,
seconds = remainder % 60;
return ( hours + "h: "
+ minutes + "m: "
+ seconds +"s: " + milliSecs + "ms");
}