Задать вопрос
@kot98

Как корректно посчитать разницу в moment js?

Нужно получить разницу во времени по типу, 1 12:10:05, т.е. кол-во дней и время
При сравнении дат получаю в разнице +1 день
Пример:
текущее время и дата: 10.07.2024 10:40
const now = moment()
      const serverTime = moment('2024-10-09 10:20:34.987')
      const serverAndUserTimeDifference = now.diff(serverTime)
      console.log(moment(Math.abs(serverAndUserTimeDifference)).utc().format('DD HH:mm:ss').toString())

В итоге получаю +02 23:40:34. Нужно получить в данном случае 1 день, а не 2
  • Вопрос задан
  • 109 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Elaryks
@Elaryks
Мало работал с Moment.js, но, вероятно, ошибка в том, что serverAndUserTimeDifference — разница в миллисекундах между датами, а при пробросе её в moment() она считается как дата в UNIX-формате.

Вот примерный код, который работает:
const now = moment();
const serverTime = moment('2024-10-09 10:20:34.987');
const duration = moment.duration(Math.abs(now.diff(serverTime)));
const result = `${duration.days()} ${duration.hours().toString().padStart(2, '0')}:${duration.minutes().toString().padStart(2, '0')}:${duration.seconds().toString().padStart(2, '0')}`;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы