Я использую функцию moment.diff для вычисления продолжительности времени между двумя датами.
Мой код выглядит так:
function calculateDurationBetweenDates(now, then){
if(!now || !then){
return;
}
var ms = moment(then, "DD-MM-YYYY HH:mm:ss").diff(moment(now, "DD-MM-YYYY HH:mm:ss"));
var d = moment.duration(ms);
var s = Math.floor(d.asHours()) + moment.utc(ms).format(":mm:ss");
return s;
}
calculateDurationBetweenDates ("2016-10-08 11:29:23","2016-10-08 10:29:23");
это дает мне результат отрицательный как -1:00:00
.
Я не понимаю, почему.
Переключить даты:
var ms = moment(now, "DD-MM-YYYY HH:mm:ss").diff(moment(then, "DD-MM-YYYY HH:mm:ss"));
Отрицательным является ожидаемый ответ, если вы запрашиваете разницу между более поздней датой и более ранней датой. Если вы хотите, чтобы неотрицательные просто переключали их на круги своя.
Math.abs()
. Также ваш формат неверен, это должен бытьYYYY-MM-DD
а НЕDD-MM-YYYY
.