Момент JS формат продолжительности - PullRequest
0 голосов
/ 09 января 2019

Я получил строку ISO 8601 как длительность, и мне нужно отформатировать ее как XhYm (1h20m). У кого-нибудь есть предложения?

То, что я сделал сейчас, это:

const duration = moment.duration(secondData.duration);
const formatted = moment.utc(duration.asMilliseconds()).format('HH:mm');

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Самый простой способ сделать это включает немного ручного форматирования:

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>
0 голосов
/ 09 января 2019

Чтобы получить желаемый формат вывода, вам нужно установить строку формата по-другому в вызове format():

const duration = moment.duration('PT1H20M');
const formatted = moment.utc(duration.asMilliseconds()).format("H[h]m[m]");

Использование квадратных скобок позволяет моментально печатать эти символы, не пытаясь использовать их в формате. См. Экранирующие символы в документации моментов.

...