Есть ли способ, которым я могу использовать format
метод moment.js на объектах длительности? Я не могу найти его где-нибудь в документах, и он не считается атрибутом объектов продолжительности.
Я хотел бы иметь возможность сделать что-то вроде:
var diff = moment(end).unix() - moment(start).unix();
moment.duration(diff).format('hh:mm:ss')
Кроме того, если есть какие-либо другие библиотеки, которые могут легко приспособить такую функциональность, я был бы заинтересован в рекомендациях.
Спасибо!
javascript
momentjs
mvanveen
источник
источник
HH:mm:ss
приведу00:00:23
в моем предыдущем примере. так что просто неправильный корпус в части часовОтветы:
Мы собираемся добавить какое-то форматирование к длительностям в moment.js. См. Https://github.com/timrwood/moment/issues/463.
Несколько других библиотек, которые могут помочь: http://countdownjs.org/ и https://github.com/icambron/twix.js
источник
Посмотрите на JSFiddle
источник
DDD HH:mm:ss.SSS
(гдеDDD
день года) отображается,1
когда я хочу0
. Любое быстрое решение для этого?преобразовать длительность в мс, а затем в момент:
источник
.format('HH:mm:ss')
. Смотрите документыИспользуйте этот плагин Moment Duration Format .
Пример:
источник
hh:mm:mm
и у меня будет только 10 секунд, он будет отображаться10
вместо00:00:10
(даже с включенной силой) Если это не форматирование ... тогда он должен называться как-то иначе, форматы должны быть стандартизированы.{ trim: false }
это остановит это поведение.const duration = moment.duration(value, 'seconds');
я могу отформатировать, используя:moment.utc(duration.as('milliseconds')).format('HH:mm:ss').toString();
Используйте эту строку кода:
источник
источник
Лучший сценарий для моего конкретного случая использования был:
Это улучшает ответ @ Wilson, поскольку он не имеет доступа к частному внутреннему свойству _data.
источник
Вам не нужно .формат. Используйте длительности как это:
Я нашел это решение здесь: https://github.com/moment/moment/issues/463
РЕДАКТИРОВАТЬ:
И с отступами для секунд, минут и часов:
источник
duration = moment.duration(7200, 'seconds'); withPadding(duration);
скажут «00:00».if (duration.asDays() > 0) { return 'at least one day';
- Я правильно читаю?Я использую:
И я получаю «09:30» в вар ул.
источник
_data
является внутренним свойством и может изменяться без предупреждения.moment(moment.duration(1200000)._data).format('hh:mm:ss')
вернется 12:20 вместо 00:20h
находится в диапазоне 1-12, так что это вполне ожидаемо. ИспользуйтеH
вместо документов - часовые жетоныmoment.utc(...).format("HH:mm");
если разница это момент
источник
Если вы хотите использовать другую библиотеку JavaScript, цифра.js может отформатировать секунды следующим образом (пример для 1000 секунд):
источник
Я использую классическую функцию форматирования в следующих случаях:
Это хак, потому что разница во времени рассматривается как стандартная дата момента, дата ранней эпохи, но это не имеет значения для нашей цели, и вам не нужен плагин
источник
Если должны отображаться все часы (более 24) и если «0» перед часами не требуется, то форматирование можно выполнить с помощью короткой строки кода:
источник
Основываясь на ответе ни-ко-о-кин :
источник
Для форматирования длительности момента в строку
источник
если вы используете angular, добавьте это в ваши фильтры:
пример использования
источник
Мое решение, которое не требует какой-либо другой библиотеки и работает с diff> 24h
источник
Как насчет нативного JavaScript?
источник
Используйте момент-продолжительность-формат .
Клиентская структура (напр .: React)
Сервер (node.js)
источник
Печать:
источник
источник
Вы можете использовать цифру.js для форматирования вашей продолжительности:
источник
Это может быть использовано, чтобы получить первые два символа в виде часов и последние два в качестве минут. Та же логика может быть применена к секундам.
источник
moment.duration(x).format()
был объявлен устаревшим Вы можете использовать,moment.utc(4366589).format("HH:mm:ss")
чтобы получить желаемый ответ.источник
Как правильно использовать длительности moment.js? | Используйте момент.duration () в коде
Сначала нужно импортировать
moment
иmoment-duration-format
.Затем используйте функцию продолжительности. Давайте применим приведенный выше пример: 28800 = 8 утра.
,Ну, у вас нет ошибки типа выше. GetВы получаете правильное значение 8:00 утра? Нет ..., значение, которое вы получаете 8:00. Формат Moment.js не работает, как положено.
SolutionРешение заключается в преобразовании секунд в миллисекунды и использовании времени UTC.
Хорошо, сейчас 8:00. Если вы хотите 8 часов утра вместо 8 часов утра для интегрального времени, нам нужно сделать RegExp
источник
Мне нужно было сделать это для работы в качестве требования для отображения часов в этом формате. Сначала я попробовал это.
Тем не менее, все, что больше 24 часов и часы сбрасываются на 0. Но минуты и секунды были точными. Поэтому я использовал только эту часть для минут и секунд.
Теперь все, что мне нужно, это общее количество часов.
И чтобы получить тот формат, который нам всем нужен, мы просто склеим его.
если
totalMilliseconds
есть894600000
это вернется249:30:00
.Надеюсь, что это помогло. Оставляйте любые вопросы в комментариях. ;)
источник
Если вы используете Angular> 2, я создал Pipe, вдохновленный ответом @ hai-alaluf.
источник
Это работает для меня:
источник