Puedes añadir una cantidad de horas B a una cantidad de horas A mediante el método
setHours:
Código Javascript
:
Ver originalDate.prototype.sumar = function(a, b){
a.setHours(a.getHours() + b.getHours(), a.getHours() + b.getMinutes(), a.getHours() + b.getSeconds());
return (a.getHours() < 10 ? "0" + a.getHours() : a.getHours()) + ":" +
(a.getMinutes() < 10 ? "0" + a.getMinutes() : a.getMinutes())+ ":" +
(a.getSeconds() < 10 ? "0" + a.getSeconds() : a.getSeconds());
};
var d1 = prompt("Hora 1:").split(":"),
d2 = prompt("Hora 2:").split(":"),
h1 = new Date(),
h2 = new Date();
h1.setHours(d1[0], d1[1], d1[2]);
h2.setHours(d2[0], d2[1], d2[2]);
document.body.innerHTML = new Date().sumar(h1, h2);
La hora tiene que ser ingresada en formato
HH:MM:SS, el único inconveniente está en que si, por ejemplo, la hora A es 23:30:45 y la hora B es 12:20:02, el resultado será 11:50:47 y no 35:50:47, pues en el formato estándar de las horas, solamente puede ir de 00:00:00 a 23:59:59, en otras palabras, en un caso así pasarías a la fecha siguiente y la hora que corresponda según la suma.
Añado un método al objeto
Date para que sea reutilizable, pero si gustas, puedes hacerlo de manera independiente.
Saludos