向 moment.js 时间添加前导零

问题描述 投票:0回答:4

我目前正在使用 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,也会显示它们,以及单位数字的前导零。

javascript node.js time momentjs
4个回答
18
投票

您可以使用时刻-持续时间格式插件:

使用

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>


2
投票

尝试

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


0
投票

在格式中使用两次格式字母而不是一次。

例如

moment(new Date()).format("DD MMM YY")

将给出前导零,但是

moment(new Date()).format("D MMM YY")

不会


-2
投票

使用这个:

function addZeros(d,h,m,s){
  return  ("0"+d).substr(-2) + ":" +("0"+h).substr(-2) + ":"+("0"+m).substr(-2) + ":" +("0"+s).substr(-2);
}
© www.soinside.com 2019 - 2024. All rights reserved.