我有一个ISO 8601字符串作为持续时间,我需要将其格式化为XhYm(1h20m)。有人有建议吗?
我现在所做的是:
const duration = moment.duration(secondData.duration);
const formatted = moment.utc(duration.asMilliseconds()).format('HH:mm');
答案 0 :(得分:3)
要获取所需的输出格式,您需要在format()
调用中设置不同的格式字符串:
const duration = moment.duration('PT1H20M');
const formatted = moment.utc(duration.asMilliseconds()).format("H[h]m[m]");
使用方括号可以立即打印这些字符,而无需尝试使用格式。请参阅momentjs文档中的Escaping Characters。
答案 1 :(得分:0)
最简单的方法是进行一些手动格式化:
var d = moment.duration("PT1H20M");
console.log(d.hours()+"H"+d.minutes()+"M");
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.min.js"></script>