Tengo un script acá que la función que quiero que cumpla es la siguiente.
Seteo día, mes, año y hora en una variable y mediante un while chequeo la fecha seteada y si es menor a la hora del visitante le sumo 33.
El resultado final del while es una fecha futura no superior a las 33 horas, con esa fecha y la fecha actual creo una cuenta regresiva la cual funciona bien hasta llega a 0.
Esta cuando llega a 0 lo que yo quiero que haga es que se reinicie a 33 horas nuevamente, pero no entiendo porque se reinicia a 48 horas.
Les dejo el codigo para que vean en donde meti mal el dedo.
Código HTML:
tzo = - new Date().getTimezoneOffset()/60 var ahora=new Date() var mi_fecha=new Date("July 26, 2011 13:33:00") var horas=33 while(mi_fecha<ahora) { mi_fecha.setHours(mi_fecha.getHours()+ horas); //sumo 33 horas } mi_fecha2 = mi_fecha.setHours(mi_fecha.getHours()+tzo); function getTime() { now = new Date(); days = (mi_fecha2 - now) / 1000 / 60 / 60 / 24; daysRound = Math.floor(days); hours = (mi_fecha2 - now) / 1000 / 60 / 60 - (24 * daysRound); hoursRound = Math.floor(hours); minutes = (mi_fecha2 - now) / 1000 /60 - (24 * 60 * daysRound) - (60 * hoursRound); minutesRound = Math.floor(minutes); seconds = (mi_fecha2 - now) / 1000 - (24 * 60 * 60 * daysRound) - (60 * 60 * hoursRound) - (60 * minutesRound); secondsRound = Math.round(seconds); sec = (secondsRound == 1) ? "<td width='25%'> Segundo </td></tr>" : "<td width='25%'> Segundos </td></tr>"; min = (minutesRound == 1) ? "<td width='25%'> Minuto </td>" : "<td width='25%'> Minutos </td>"; hr = (hoursRound == 1) ? "<td width='25%'> Hora </td>" : "<td width='25%'> Horas </td>"; dy = (daysRound == 1) ? "<tr><td width='25%'> Día </td>" : "<tr><td width='25%'> Días </td>"; document.getElementById("respaw").innerHTML = "<table width='80%' border='1' align='center'><tr><td colspan='4'>Sale el </td></tr>" + dy + hr + min + sec + "<tr><td width='25%'>" + daysRound + "<td width='25%'>" + hoursRound + "<td width='25%'>" + minutesRound + "<td width='25%'>" + secondsRound + " </td></tr></table>"; newtime = window.setTimeout("getTime();", 1000); }