Hola
carlosgs91:
Creo que lo que estás buscando sería mas o menos así:
Código PHP:
<body onLoad="sacarTiempo();">
<script>
function sacarTiempo() {
window.setTimeout( "sacarTiempo()", 1000);
var fechaInicio = new Date();
fechaInicio.setMonth( fechaInicio.getMonth()+1 );
var fechaFin = new Date(2008,7,2, 11,5,0);
var diferencia = Math.abs( fechaFin.getTime() - fechaInicio.getTime() );
var dias = Math.floor( diferencia /1000/60/60/24 );
var horas = Math.floor( diferencia /1000/60/60) - dias*24;
var minutos = Math.floor( diferencia /1000/60) - dias*24*60 - horas*60;
var segundos = Math.floor( diferencia /1000) - dias*24*60*60 - horas*60*60 - minutos*60;
document.getElementById('eltiempo').innerHTML = "Desde el "+fechaInicio+"<br/>Hasta "+fechaFin+": <br/>"+dias+"dias, "+horas+"horas, "+minutos+"minutos, "+segundos+"segundos.";
}
</script>
<div id="eltiempo"></div>
Es bueno simplificar en paréntesis y en longitud de sentencias para maximizar la legibilidad y mantenibilidad del código.
Por otra parte, estabas restando cantidades grandes a cantidades pequeñas (orden de sumandos), y en cada operación tenías que hacer un
Math.abs() porque te salía negativo. También hay que señalar que aquí hay que utilizar un redondeo a la baja (
Math.floor()) en vez de
Math.round(), porque si faltan 7.98 días faltarán 7días+23.52 horas, y no 8días+23.52horas.
No sé qué decirte que fallaba en tu función, creo que sobraban variables por todas partes (ya que
dias=dias2,
minutos=minutos2...)
Por último no has posteado lo que quieres hacer, que es importante: Estás calculando la distancia entre la fecha actual + 1 mes (me he tomado la libertad de reescribirlo para que se entienda mejor), y el 2 de Agosto de 2008 a las 11:05h; espero que ese sea tu propósito.
Un saludo