Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/10/2017, 12:23
Musiker
Invitado
 
Mensajes: n/a
Puntos:
Problema con cuenta regresiva

Hola a todos.

Estoy intentando armar una cuenta regresiva con código que he visto en este foro y en el resto de la web. Le he añadido algunas cosas y pensaba que la lógica estaba bien, pero no funciona. Consiste en una cuenta regresiva que, al llegar la fecha deseada, se le añada automáticamente 1 día y el contador comience de nuevo.
¿Alguna ayuda?

Muchas gracias por adelantado.

Código Javascript:
Ver original
  1. <HTML>
  2. <HEAD>
  3. <script type="text/javascript" language="JavaScript">
  4.  
  5. var futuro = new Date (2017,9,22,20,02); //año, mes-1, dia, hora, minutos  
  6. var actualiza = 1000;
  7. function faltan()
  8. {
  9.     var ahora = new Date();
  10.     var faltan = futuro - ahora;
  11.     if (faltan > 0){
  12.     var segundos = Math.round(faltan/1000);
  13.     var minutos = Math.floor(segundos/60);
  14.     var segundos_s = segundos%60;
  15.     var horas = Math.floor(minutos/60);
  16.     var minutos_s = minutos%60;
  17.     var dias = Math.floor(horas/24);
  18.     var horas_s = horas%24;
  19.     document.formulario.reloj.value= dias + " dias : " + horas_s + " horas : " +
  20.     +minutos_s + " minutos : " + segundos_s + " segundos" ;
  21.     setTimeout("faltan()",actualiza);
  22. }
  23. else //SI LA FECHA YA HA LLEGADO...
  24. {
  25.  
  26.     var futuro = new Date();
  27.     futuro.setHours(futuro.getHours()+24); //...LE SUMAMOS 1 DÍA (EN HORAS) A LA HORA ACTUAL Y...
  28.  
  29.     var actualiza = 1000;
  30.     function faltan() //...VOLVEMOS A COMENZAR LA CUENTA REGRESIVA
  31.     {
  32.         var ahora = new Date();
  33.         var faltan = futuro - ahora;
  34.         if (faltan > 0){
  35.         var segundos = Math.round(faltan/1000);
  36.         var minutos = Math.floor(segundos/60);
  37.         var segundos_s = segundos%60;
  38.         var horas = Math.floor(minutos/60);
  39.         var minutos_s = minutos%60;
  40.         var dias = Math.floor(horas/24);
  41.         var horas_s = horas%24;
  42.         document.formulario.reloj.value= dias + " dias : " + horas_s + " horas : " +
  43.         +minutos_s + " minutos : " + segundos_s + " segundos" ;
  44.         setTimeout("faltan()",actualiza);
  45.     }
  46.    
  47.     document.formulario.reloj.value= "0 dias : 0 horas : 0 minutos : 0 segundos" ;
  48.     return true;
  49. }
  50. }
  51. </script>
  52. </head>
  53. <BODY onload="faltan()">
  54. <form name="formulario">
  55. <input type="text" name="reloj" value="" size="55" style="border : 0px ; text-align : center">
  56. </form>
  57. </body>
  58. </html>