Используя moment.js, я хочу получить разницу во времени между двумя временными метками.Неправильная часовая разница между двумя временными метками (hh: mm: ss)
Выполнение следующих,
var prevTime = moment('23:01:53', "HH:mm:SS");
var nextTime = moment('23:01:56', "HH:mm:SS");
var duration = moment(nextTime.diff(prevTime)).format("HH:mm:SS");
Я получаю этот результат:
01:00:03
Почему у меня 1 час разницы? секунды и минуты, кажется, работают хорошо.
После выполнения этого я попытался следующие:
function time_diff(t1, t2) {
var parts = t1.split(':');
var d1 = new Date(0, 0, 0, parts[0], parts[1], parts[2]);
parts = t2.split(':');
var d2 = new Date(new Date(0, 0, 0, parts[0], parts[1], parts[2]) - d1);
return (d2.getHours() + ':' + d2.getMinutes() + ':' + d2.getSeconds());
}
var diff = time_diff('23:01:53','23:01:56');
выход: 1:0:3
Возможно, это связано с смещением по GMT: вы можете попробовать UTC. Просто примечание: ['SS' используется для дробных секунд] (http://momentjs.com/docs/#/parsing/string-format/) – Bigood
Да, я неправильно читаю документы. Исправил его, спасибо! – krakig