Temporizador PHP y JS

  • Autor Autor cooply
  • Fecha de inicio Fecha de inicio
C

cooply

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola todos, tengo un contador en js que recoge informacion horaria del servidor mediante php y hace una cuenta atras hasta las 12.00 am

¿Que podría hacer para que al llegar a 0 ejecute una funcion en php?


Lo que quiero es que al llegar a 0 lance una funcion en PHP de un UPDATE a la base de datos.

El código:

PHP:
    <?php
$dia_semana = $gisset;//Lunes, martes
$dia_numero = $dianum;//1-30
$mes_nombre = $mesnum;//Enero-diciembre

?>

HTML:
 <script language="javascript">
  //recoge las variables de los dias del servidor que paso mediante php
  var dia_numero_js = "<?php echo $dia_numero; ?>" ;
  var mes_nombre_js = "<?php echo $mes_nombre; ?>" ;

					var anioFinal = 2015  //año de la fecha
					var mesFinal = mes_nombre_js  //mes de la fecha
					var diaFinal = dia_numero_js  //día de la fecha

					mesFinal -= 1
					function faltan(){
						fechaFinal = new Date(anioFinal,mesFinal,diaFinal)
						fechaActual = new Date()

						diferencia = fechaFinal - fechaActual
						diferenciaSegundos = diferencia /1000
						diferenciaMinutos = diferenciaSegundos/60
						diferenciaHoras = diferenciaMinutos/60
						diferenciaDias = diferenciaHoras/24

						diferenciaHoras2 = parseInt(diferenciaHoras) - (parseInt(diferenciaDias) *24)
						diferenciaMinutos2 = parseInt(diferenciaMinutos) - (parseInt(diferenciaHoras) * 60)
						diferenciaSegundos2 = parseInt(diferenciaSegundos) - (parseInt(diferenciaMinutos) * 60)
						diferenciaDias = parseInt(diferenciaDias)

						if (diferenciaDias < 10 && diferenciaDias > -1){diferenciaDias = "0" + diferenciaDias}
						if(diferenciaHoras2 < 10 && diferenciaHoras2 > -1){diferenciaHoras2 = "0" + diferenciaHoras2}
						if(diferenciaMinutos2 < 10 && diferenciaMinutos2 > -1){diferenciaMinutos2 = "0" + diferenciaMinutos2}
						if(diferenciaSegundos2 < 10 && diferenciaSegundos2 > -1){diferenciaSegundos2 = "0" + diferenciaSegundos2}
						if(diferenciaDias <= 0 && diferenciaHoras2<= 0 && diferenciaMinutos2 <= 0 && diferenciaSegundos2 <= 0)
						{
							document.getElementById('dias_2').innerHTML = '00';
							document.getElementById('horas_2').innerHTML = '00';
							document.getElementById('minutos_2').innerHTML = '00';
							document.getElementById('segundos_2').innerHTML = '00';
						}else{
							document.getElementById('dias_2').innerHTML = diferenciaDias;
							document.getElementById('horas_2').innerHTML = diferenciaHoras2;
							document.getElementById('minutos_2').innerHTML = diferenciaMinutos2;
							document.getElementById('segundos_2').innerHTML = diferenciaSegundos2;

							setTimeout('faltan()',1000)
						}
					}
					</script>

					<div class="span">
                    	<h5>El concurso termina el:</h5>
                        <center>
                        <?php echo $dianu[$dianormal]." de ".$mes[$mesnum]." de ".date("Y"); ?></center>
                        <center>00:00 <small>(GMT+1)</small></center>
                        <h4><i class="fontello"></i> Tiempo <small>restante</small></h4>
                        <hr class="margin-mx">
                        <div id="concurso"></div>
                        <h3><center><strong>Días: </strong><span id="dias_2">00</span></center></h3>
                    	<h3><center><strong>Horas: </strong><span id="horas_2">00</span></center></h3>
                        <h3><center><strong>Minutos: </strong><span id="minutos_2">00</span></center></h3>
                        <h3><center><strong>Segundos: </strong><span id="segundos_2">00</span></center></h3>
                        <script language="javascript">faltan();</script>


No tengo mucha idea de codigo, ojala alguien me pueda ayudar, saludo y muchas gracias de antemano.
 
Última edición:
Solo debes crear otra funcion y cuando quede x hora la ejecute y después la consulta a la base de datos.
 
Gracias por contestar [MENTION=121168]SnakeNet[/MENTION]

He intentado poner esto
PHP:
setTimeout('faltan(<?php
			$sumar_premio = $db->QueryFetchArrayAll("SELECT uid, SUM(`today_clicks`) AS `today_clicks` GROUP BY uid ORDER BY `today_clicks` DESC LIMIT 1");
			$mentregar_premio = mysql_query("UPDATE users SET coins+13 WHERE id=$sumar_premio"); ?>)',1)

Pero no funciona, tienes alguna idea o guiarme un poco, esque estoy muy verde.. 😕

Muchas gracias.
 
Depende el tiempo de la cuenta regresiva, por que para que el UPDATE se ejecute tendrias que tener abierta la pagina durante el tiempo restante para que el script no se interrumpa, te recomiendo usar un crontab
 
Puedes hacer una llamada por ajax a otra pagina de php cuando termine.

Saludos
 
Atrás
Arriba