Как сделать вычитание ЧЧ: ММ: СС в моментах - PullRequest
0 голосов
/ 12 января 2019

У меня есть код ниже:

moment(moment("23:00:00", "HH:mm:ss").diff(moment("18:00:00", "HH:mm:ss"))).utc().format("HH:mm:ss");

производит о / п: 05:00:00 - работает правильно

 moment(moment("00:00:00", "HH:mm:ss").diff(moment("18:00:00", "HH:mm:ss"))).utc().format("HH:mm:ss");

неправильно выдает op: 00: 00: 00:

мне нужно ниже o / p: -18: 00: 00

1 Ответ

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

Ваша строка кода выглядит излишне сложной. Давайте разберемся с этим. Сначала назначьте «моменты», в которых вы хотите найти разницу. Вам пока не нужно format(). Формат возвращает строку в целях презентации. Вам это не нужно (пока).

const evening = moment("18:00:00", "HH:mm:ss").utc();
const midnight = moment("00:00:00", "HH:mm:ss").utc();

Отличайтесь одним моментом от другого: один результат даст вам положительный результат, другой - отрицательный. ( это объясняется в документах ):

const diffFromEvening = evening.diff(midnight, 'hours');
const diffFromMidnight = midnight.diff(evening, 'hours');

console.log('diff from evening', diffFromEvening); // 18
console.log('diff from midnight', diffFromMidnight); // -18

Проверьте это в действии здесь .

...