将前导零添加到moment.js时间

Oll*_*lie 6 javascript time node.js momentjs

我目前正在使用moment.js来处理node.js应用程序中的时间显示 - 有没有一种方法我总是可以使用前导零格式化日期,并且至少两个字符宽?

所以9天,1小时12分23秒

09:01:12:23
Run Code Online (Sandbox Code Playgroud)

或者1分钟

00:00:01:00
Run Code Online (Sandbox Code Playgroud)

谢谢任何可以帮助的人


我正在计算数据库中两件事之间的时间,然后在几秒钟内将它发送到moment.js.

duration.html(difference.add(1, "seconds").format("d:hh:mm:ss"));

基本上我想强制执行,即使天数为0,它们也会显示,以及单位数字的前导零.

Vin*_*zoC 14

您可以使用moment-duration格式插件:

使用该trim选项可显示没有值的单位.正如文档所说:

领先的标记在没有价值时会自动修剪.要停止该行为,请设置{ trim: false }.

这是一个工作示例:

var d1 = moment.duration({
  seconds: 23,
  minutes: 12,
  hours: 1,
  days: 9
});
var d2 = moment.duration({
  minutes: 1
});
console.log(d1.format('DD:HH:mm:ss'));
console.log(d2.format('DD:HH:mm:ss', { trim: false }));
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)