Sascha Manns Ответов: 1

Как вычесть время из другого времени


В настоящее время у меня есть две строки, которые содержат в себе определенное время. Нравится:

один = "04:15:00"
два = "00:30:00"

Результат должен быть "03:45:00"

Как я могу реализовать это в JavaScript?

Что я уже пробовал:

Я попытался получить новый объект даты и использовал getHour(), getMinutes() и getSeconds(). Но в настоящее время я не знаю, каковы следующие шаги.

1 Ответов

Рейтинг:
9

Vincent Maverick Durano

Есть много возможных способов сделать это. Вот только один из них:

String.prototype.toHHMMSS = function () {
    var sec_num = parseInt(this, 10); 
    var hours = Math.floor(sec_num / 3600);
    var minutes = Math.floor((sec_num - (hours * 3600)) / 60);
    var seconds = sec_num - (hours * 3600) - (minutes * 60);

    if (hours < 10) { hours = "0" + hours; }
    if (minutes < 10) { minutes = "0" + minutes; }
    if (seconds < 10) { seconds = "0" + seconds; }
    var time = hours + ':' + minutes + ':' + seconds;
    return time;
}


function dateDiff(time1, time2) {
    var t1 = new Date();
    var parts = time1.split(":");
    t1.setHours(parts[0], parts[1], parts[2], 0);
    var t2 = new Date();
    parts = time2.split(":");
    t2.setHours(parts[0], parts[1], parts[2], 0);

    return (parseInt(Math.abs(t1.getTime() - t2.getTime()) / 1000)).toString().toHHMMSS();
}

var one = "04:15:00";
var two = "00:30:00";

alert(dateDiff(one,two)); //outputs "03:45:00"


Живая демонстрация: Демонстрация Разницы Во Времени - JSFiddle[^]


Sascha Manns

@Vincent: большое спасибо, он отлично работает :-)

Vincent Maverick Durano

Добро пожаловать! Рад быть полезным. :)