Groyreg
@Groyreg
Front-end

Как сложить время, если оба значения представлены строкой?

Добрый день.
Имеются 2 строковые переменные:
time_start = "12:20",
duration = "01:25"


Необходимо получить переменную
time_end = time_start + duration
Но естественно в этом случае происходит конкатинация, с помощью parseInt у меня тоже не получилось.

Изменять тип начальных двух переменных нельзя, они должны остаться строковыми.
Есть какой-то вариант решения?
  • Вопрос задан
  • 288 просмотров
Решения вопроса 3
Stalker_RED
@Stalker_RED
function foo(start, duration) {
    let s = start.split(':'),
    d = duration.split(':'),
    min = +s[0] * 60 + +s[1] + +d[0] * 60 + +d[1] // хак, но мне лень
    return Math.floor(min / 60) + ':' + min % 60
}
jsfiddle.net/2cr54f8n/1
Ответ написан
search
@search
мама говорит что я особенный
Изврат, конечно, но работает :)

var time_start = "12:20";
var duration = "01:25";
var d1 = new Date('0000-01-01T' + time_start);
var d2 = new Date('0000-01-01T' + duration);
var finish = new Date('0000-01-01T00:00');
finish.setHours(d1.getHours() + d2.getHours());
finish.setMinutes(d1.getMinutes() + d2.getMinutes());
var finishTime = finish.toTimeString().slice(0, 5);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы