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