Sherzy
9/26/2017 - 4:05 PM

Get duration as a string between 2 dates

Get duration as a string between 2 dates

// example of usage
obj.Duration = $scope.getDurationStr(obj.CompletedAt, obj.StartedAt);

// Duration string - NOTE: ignoring days
$scope.getDurationStr = function (future /*the later date*/, past) {
    // get total seconds between the times
    var delta = Math.abs(future - past) / 1000;

    // calculate (and subtract) whole days
    var days = Math.floor(delta / 86400);
    delta -= days * 86400;

    // calculate (and subtract) whole hours
    var hours = Math.floor(delta / 3600) % 24;
    delta -= hours * 3600;

    // calculate (and subtract) whole minutes
    var minutes = Math.floor(delta / 60) % 60;
    delta -= minutes * 60;

    // what's left is seconds
    var seconds = Math.floor(delta);

    // format hours, min, seconds
    hours = hours < 10 ? '0' + hours : hours;
    minutes = minutes < 10 ? '0' + minutes : minutes;
    seconds = seconds < 10 ? '0' + seconds : seconds;

    return hours + ":" + minutes + ":" + seconds;
};