Ver Mensaje Individual
  #7 (permalink)  
Antiguo 04/10/2017, 12:17
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Contador autoreiniciable

Como dicen arriba, toca usar js.

Te dejo lo que haría, pero antes que nada el elemento html en el cual se tratará la cuenta atras debe ser de esta forma:

<div id="someID">mm:ss:cc</div>

Código Javascript:
Ver original
  1. function countDown(timer, restart, cooldown, intv, callback){
  2. var time = timer.innerHTML.split(":");
  3.  
  4. var c = parseInt(time[2]);
  5. var s = parseInt(time[1]);
  6. var m = parseInt(time[0]);
  7.  
  8. var stop = false;
  9.  
  10.     if(--c < 0){
  11.     c = 99;
  12.         if(--s < 0){
  13.         s = 59;
  14.             if(--m < 0){
  15.             stop = true;
  16.             m = restart;
  17.             s = 0;
  18.             c = 0;
  19.             // callback(); <--- if you want to use the callback remove the bars !!     
  20.             }
  21.         }
  22.     }
  23.  
  24.     if(c < 10){ c = "0"+c; }
  25.     if(s < 10){ s = "0"+s; }
  26.     if(m < 10){ m = "0"+m; }
  27. timer.innerHTML = m+":"+s+":"+c;
  28.  
  29.     if(stop){
  30.     clearInterval(intv);
  31.     setTimeout(function(){
  32.         intv = setInterval(function(){ countDown(timer, restart, cooldown, intv, callback); },10);
  33.         },cooldown);
  34.     }
  35. }

Parametros:
timer = elemento en el cual se trabajara
restart = minutos del reinicio (20 en este caso)
cooldown = tiempo para reiniciar la cuenta atras, en ms, si quieres esperar 5 segundos, entonces usas 5000
intv = la variable que contiene el intervalo de esta funcion
callback = funcion a ejecutar al terminar la cuenta atras

Entonces podrias hacer algo así

Código Javascript:
Ver original
  1. var  cuentaAtras = setInterval( function(){ countDown(document.getElementById('timer'), 20, 3000, cuentaAtras, algunaFuncion) },10);

Te recuerdo que ese ultimo 10 es necesario, ya que js trabaja con milisegundos (10^-3), y estamos trabajando con centesimas (10^-2) de segundo, por lo tanto tenemos que hacer la conversion:

10^-3/10^-2 = 10

Espero no haber cometido algun error

Saludos

Última edición por alvaro_trewhela; 04/10/2017 a las 12:58