Ver Mensaje Individual
  #18 (permalink)  
Antiguo 11/06/2008, 08:47
Avatar de KarlanKas
KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 23 años
Puntos: 61
Respuesta: Suma de dos horas en java script

El anterior fallaba. Así ya sí que no falla.
Código:
<html>
<head>
<title>Untitled</title>
<script>


function calcular(){

	horatotale=new Array(0,0,0);
	for(b=0;b<arguments.length-1;b++){
		horas=obj(arguments[b]).value.split(":");

		for(a=0;a<3;a++){
			horas[a]=(isNaN(parseInt(horas[a])))?0:parseInt(horas[a])
			horatotale[a]=(b==0)?horas[a]:horatotale[a]-horas[a]; // Suma o resta según prefieras

		}
	}

	horatotal=new Date()
	horatotal.setHours(horatotale[0]);
	horatotal.setMinutes(horatotale[1]);
	horatotal.setSeconds(horatotale[2]);

	obj(arguments[2]).value=horatotal.getHours()+":"+horatotal.getMinutes()+":"+horatotal.getSeconds();

}

function obj(x){
y= document.getElementById(x);
return y;
}
</script>
</head>

<body>
<form action="#" onsubmit="calcular(this);return false">
<input type="text" name="hora1" id="hora1" onblur="calcular('hora1','hora2','horatotal')" /> - 
<input type="text" name="hora2" id="hora2" onblur="calcular('hora1','hora2','horatotal')" /> 
= <input type="text" name="horatotal" id="horatotal" /> <input type="submit" value="calcular" />
<br />
<br />
<input type="text" name="pepe" id="pepe" onblur="calcular('pepe','juan','horatotal2')" /> - 
<input type="text" name="juan" id="juan" onblur="calcular('pepe',juan,'horatotal2')" /> 
= <input type="text" name="horatotal2" id="horatotal2" /> <input type="submit" value="calcular" />


</form>


</body>
</html>
Ahora puedes sumar (o restar) todos los campos que quieras siempre que pongas como último argumento el id del campo en el que quieras que aparezca el resultado. Es decir, puedes poner calcular("campo1","campo2","campo3","campo4",...," camporesultado").

Un saludo!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.