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;
};