Добрый день, мне приходят данные в string формате: '11:43' и '13:14' Помогите правильно написать скрипт что-бы высчитывал разницу между этими двумя числами, должно получиться 01:31. Можно через Moment JS
Возможно вам будет достаточно такого решения:
let firstDate = '11:43';
let secondDate = '13:14';
let getDate = (string) => new Date(0, 0,0, string.split(':')[0], string.split(':')[1]); //получение даты из строки (подставляются часы и минуты
let different = (getDate(secondDate) - getDate(firstDate));
let hours = Math.floor((different % 86400000) / 3600000);
let minutes = Math.round(((different % 86400000) % 3600000) / 60000);
let result = hours + ':' + minutes;
console.log(result);
Можно поступить так:
Итого 1 час 31 минута
Немного дописал скрипт, если время началось в 23:43 и закончилось в 04:14 выдаст правильный ответ.
let firstDate = '23:43';
let secondDate = '04:14';
let getDate = (string) => new Date(0, 0,0, string.split(':')[0], string.split(':')[1]);
let different = (getDate(secondDate) - getDate(firstDate));
let differentRes, hours, minuts;
if(different > 0) {
differentRes = different;
hours = Math.floor((differentRes % 86400000) / 3600000);
minuts = Math.round(((differentRes % 86400000) % 3600000) / 60000);
} else {
differentRes = Math.abs((getDate(firstDate) - getDate(secondDate)));
hours = Math.floor(24 - (differentRes % 86400000) / 3600000);
minuts = Math.round(60 - ((differentRes % 86400000) % 3600000) / 60000);
}
let result = hours + ':' + minuts;
console.log(result)
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости