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

时间:2016-12-07 14:04:16

标签: javascript node.js time momentjs

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

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

09:01:12:23

或1分钟

00:00:01:00

感谢任何可以提供帮助的人

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

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

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

3 个答案:

答案 0 :(得分:12)

您可以使用moment-duration format插件:

使用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 }));
<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>

答案 1 :(得分:1)

试    moment(your_date, "your_date_format").format("DD:HH:mm:ss");

答案 2 :(得分:1)

使用此:

function addZeros(d,h,m,s){
  return  ("0"+d).substr(-2) + ":" +("0"+h).substr(-2) + ":"+("0"+m).substr(-2) + ":" +("0"+s).substr(-2);
}