Moment.js возвращается 2 дня, если продолжительность 24 часа - PullRequest
0 голосов
/ 12 декабря 2018

Мне нужна функция, в которой пользователь может вставить определенный период времени (например, 1 неделя или 5 дней и 12 часов).Продолжительность из Moment.js выглядела наиболее многообещающе.

Код ниже возвращает 2 00:00, где 2 равно числу дней.Это должно быть 1, потому что там только 24 часа.

moment.utc(moment.duration(24, 'hours').as("milliseconds")).format("D HH:mm");

Что я здесь не так делаю?

Ответы [ 4 ]

0 голосов
/ 13 декабря 2018

Я исправил это с помощью следующего кода и плагина:

moment.duration(moment().diff(moment().subtract(1, 'days')));
0 голосов
/ 12 декабря 2018

Если временные рамки фиксированы и установлены самостоятельно, вы всегда можете вручную указать количество времени в миллисекундах для начала.например, 24 часа - это 86400000 миллисекунд.

0 голосов
/ 12 декабря 2018

Вы должны отформатировать миллисекунды в момент времени, а не в момент.Я думаю, что в приведенной ниже строке указано ожидаемое значение.

 moment.duration(moment.duration(24, 'hours').as("milliseconds")).format("D HH:mm");

Ответ: 1 00: 00

0 голосов
/ 12 декабря 2018

Вы устанавливаете 24 часа как смещение в миллисекундах от 1970-01-01 (эпоха Unix), вызывая moment.utc(...).Это означает, что ваш момент содержит дату 1970-01-02 00:00, а затем вы печатаете часть дня.

...