javascript Разница в 2 временных метках

Мне нужно иметь возможность получить разницу между двумя временными метками в минутах. Мне нужно будет взять разницу и умножить ее на скорость в час. Я преобразовал разницу в мс и получил разницу, но она показывает -1:56:

    var timeIn  = time_in; //2015-02-15 15:53:52
    var TimeOut = time_out; //2015-02-15 15:55:56

    var ms = moment(timeIn,"YYYY-MM-DD HH:mm:ss").diff(moment(TimeOut,"YYYY-MM-DD HH:mm:ss"));
    var d = moment.duration(ms);
    var s = Math.floor(d.asHours()) + moment.utc(ms).format(":mm:ss");

// outputs: Time In: 2015-02-15 15:53:52 Time Out: 2015-02-15 15:55:56 Total: -1:57:56 <--
//desired output: Time In: 2015-02-15 15:53:52 Time Out: 2015-02-15 15:55:56 Total: 1:57:56 (no - 0:01:56 or if it has hours 1:01:56)

Мне нужно вывести разницу во времени для пользователя как 0 часов 1 минуту 57 секунд, а затем рассчитать скорость в час. Таким образом, если ставка была 4,00 доллара США, а разница временных меток составляла 92 минуты, она вернула бы сумму к оплате, 6,13 доллара США.

Примечание. Это может быть дольше, чем 24 часа. Скорость/временная метка извлекается из базы данных, поэтому отличается в зависимости от местоположения.


person Jeffrey Messick    schedule 15.02.2015    source источник


Ответы (1)


если вы получите отрицательное значение, сделайте это

...
var ms = moment(timeIn,"YYYY-MM-DD HH:mm:ss").diff(moment(TimeOut,"YYYY-MM-DD HH:mm:ss"));
if (ms < 0) ms = -ms;
...
person Dominique Fortin    schedule 16.02.2015
comment
Хотя это вроде работает, но не дает желаемых результатов. - person Jeffrey Messick; 17.02.2015
comment
Какие результаты вы получили с модификацией? - person Dominique Fortin; 17.02.2015
comment
Я понял, что мои timeIn и TimeOut поменялись местами. Я исправил это. Еще хотелось бы разобраться с остальными частями. - person Jeffrey Messick; 18.02.2015