Копался пол дня с if и else, чтобы часы и минуты были ровные - часы меньше 24 а минуты меньше 60.
Получилось кривая фабрика костылей.
Пока пять раз не прочитал статью -
https://learn.javascript.ru/date
(Боже храни Илью Кантора)
Короче прямо в объекте можно вычислять математику.
И если она будет кривая, 35 часов : 89 минут - браузер все поймет и нормально покажет
Пример с добавление 0 для формата 00:00
let calcDate = new Date(2020, 0, 1, Час1 + Час2, Минута1 - Минута2, 0, 0);
result.value = (calcDate .getHours() < 10 ? "0" : "") + calcDate .getHours() + ":" + (calcDate .getMinutes() < 10 ? "0" : "") + calcDate .getMinutes();
p.s. при сложении лучше parseint к числам делать, потому что если число окажется строкой, браузер конкатенацию сожрет и не покажет ничего.
10 + "7" = 107 это уже другое, нежели 17
Я на этом моменте попался, думал формулы кривые