Foros del Web » Programando para Internet » Javascript »

Actualizar Reloj en PHP

Estas en el tema de Actualizar Reloj en PHP en el foro de Javascript en Foros del Web. Hola, necesito poner en una web la hora actual.. Con el siguiente codigo en php he podido mostrar la hora del servidor, pero el problema ...
  #1 (permalink)  
Antiguo 26/02/2009, 09:15
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
Actualizar Reloj en PHP

Hola, necesito poner en una web la hora actual.. Con el siguiente codigo en php he podido mostrar la hora del servidor, pero el problema es que no se actualiza minuto a minuto. Y los relojes en javascript que encontre solo me muestran la hora de la computadra y no quiero esto ya que si el usuario tiene mal su hora, tambien en la pagina se mostrara incorrecta... como puedo hacer que se actualice???

Código PHP:
$Horadate('H:i',time() + 7200 );
print 
$Hora
(le sume 7200seg para que la hora fuera la correcta en mi ciudad). Espero me puedan ayudar, muchas gracias!!

César!
  #2 (permalink)  
Antiguo 26/02/2009, 09:24
 
Fecha de Ingreso: febrero-2009
Ubicación: Cusco - Peru
Mensajes: 142
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Actualizar Reloj en PHP

podrias hacer una cosa simple, q por php obtubieses la hora de server y esta la mandas como hora base y luego con javascript realices tu reloj pero tomando como base la hora obtenida del servidor por medio de php.

ahora lo de diferencias horarias podrias hacer q te sume o reste horas del servidor de acuerdo a la zona horaria y esta tomarla como base.
  #3 (permalink)  
Antiguo 26/02/2009, 09:26
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: Actualizar Reloj en PHP

Bien, lo que sucede es que con PHP no se podrá actualizar minuto a minuto y mediante JavaScript puede ser que no tome la hora local. Entonces la solución es usar ambas tecnologías. Eso se consigue mediante ajax, si sabes PHP y JavaScript no te será dificil aplicar ajax.
  #4 (permalink)  
Antiguo 26/02/2009, 09:31
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Respuesta: Actualizar Reloj en PHP

¿Ajax? No, para nada.

El PHP carga antes que el javascript. Puedes hacer que primero procese PHP, dentro de donde tienes escrito el JavaScript. Sobra decir que el archivo tiene que ser .php

Código PHP:
<script>
var hora = <?php print date('H:i',time() + 7200 );?>;

/*Ahora haz lo que quieras en javascript con esa hora*/

</script>
  #5 (permalink)  
Antiguo 26/02/2009, 09:37
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Actualizar Reloj en PHP

Algo asi me imaginaba, de pasarle la hora en php a una funcion en java script, pero el tema es q no se como hacer eso me seria de gran ayuda que uds. me dieran una mano con el codigo..

En Js tengo este reloj, no se si se podria combinar con lo que tengo en php:

Código HTML:
<body onload="HoraActual()">
<script language="JavaScript"> 
function HoraActual(){
var esteMomento = new Date();
var hora = esteMomento.getHours();
if(hora < 10) hora = '0' + hora;
var minuto = esteMomento.getMinutes();
if(minuto < 10) minuto = '0' + minuto;
var segundo = esteMomento.getSeconds();
if(segundo < 10) segundo = '0' + segundo;
HoraCompleta= hora + " : " + minuto + " : " + segundo;
document.getElementById('contenedor_reloj').innerHTML = HoraCompleta;
setTimeout("HoraActual()",1000)
} 
</script>  
<div id="contenedor_reloj"></div> 
</body> 
Gracias nuevamente!
  #6 (permalink)  
Antiguo 26/02/2009, 09:43
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Actualizar Reloj en PHP

david_M_G me gusta esa solución! haber si entiendo y estoy en lo correcto, podria usar el codigo Js que publique recien haciendo lo que tu me dices:

La linea:
Código:
var esteMomento = new Date();
la elimino y en la linea de abajo:

Código:
var hora = esteMomento.getHours();
la reemplazo por lo que pusiste:

Código:
var hora = <?php print date('H:i',time() + 7200 );?>;
¿estoy en lo correcto?

MUCHAS GRACIAS!
  #7 (permalink)  
Antiguo 26/02/2009, 09:44
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Respuesta: Actualizar Reloj en PHP

Supongo que así...

Código PHP:
<?php 
$mi_hora 
time() + 7200
?>

var hora = "<?=date("H"$mi_hora)?>";
var minuto = "<?=date("i"$mi_hora)?>";
var segundo = "<?=date("s"$mi_hora)?>";

Resultado:

Código PHP:
<?php 
$mi_hora 
time() + 7200
?>

<body onload="HoraActual()">
<script language="JavaScript"> 
function HoraActual(){
var esteMomento = new Date();
var hora = "<?=date("H"$mi_hora)?>";
if(hora < 10) hora = '0' + hora;
var minuto = "<?=date("i"$mi_hora)?>";
if(minuto < 10) minuto = '0' + minuto;
var segundo = "<?=date("s"$mi_hora)?>";
if(segundo < 10) segundo = '0' + segundo;
HoraCompleta= hora + " : " + minuto + " : " + segundo;
document.getElementById('contenedor_reloj').innerHTML = HoraCompleta;
setTimeout("HoraActual()",1000)

</script>  
<div id="contenedor_reloj"></div> 
</body>
  #8 (permalink)  
Antiguo 26/02/2009, 09:48
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Actualizar Reloj en PHP

mmm, algo voy entendiendo.. Seria mucha molestia si me escribies el codigo completo para poder entender como quedaria funcionando?

gracias!
  #9 (permalink)  
Antiguo 26/02/2009, 10:40
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Respuesta: Actualizar Reloj en PHP

Ya lo he hecho, ese es el código completo.
  #10 (permalink)  
Antiguo 26/02/2009, 10:48
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Actualizar Reloj en PHP

Probe el codigo, pero resulta que no se actualiza.. ¿Qué puede estar mal?
  #11 (permalink)  
Antiguo 26/02/2009, 11:26
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Respuesta: Actualizar Reloj en PHP

No lo he probado... seguramente no se le están dando los datos de PHP como JavaScript los necesita o pretende tratar. Ya sabes, comillas, formatos...

Tendrás que investigar un poco sobre cómo son los formatos (si es un número, un string, un array.. con comillas, sin comillas, etc etc) cuando este hace Date.GetHours(), .GetMinutes(), etc. y conseguir lo mismo con PHP. Solo será sustituir, como he hecho yo arriba

Suerte
  #12 (permalink)  
Antiguo 26/02/2009, 11:31
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Actualizar Reloj en PHP

Lo que pasa es que el archivo primero pasa al interprete de PHP, y luego al volver no se vuelve a actualizar mas, osea el interprete no vuelve a interpretar los valores de date("H"), etc ... Luego de pasar por el interprete de PHP, son simples cadenas estaticas.
  #13 (permalink)  
Antiguo 26/02/2009, 11:35
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Respuesta: Actualizar Reloj en PHP

Es que no es necesario. PHP da la primera hora (p.ej. 15:38) y el código de JavaScript es el que va incrementando el tiempo a partir de 15:38.
  #14 (permalink)  
Antiguo 26/02/2009, 11:37
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Actualizar Reloj en PHP

mmm, porque la hora que me esta mostrando si es la que obtengo mediante PHP, xq es la hora del sistema (no la de mi pc) solamente que no actualiza la misma..

Sera que
Código:
setTimeout("HoraActual()",1000)
no esta funcionando bien???
  #15 (permalink)  
Antiguo 26/02/2009, 11:47
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Actualizar Reloj en PHP

Esto fue lo que yo hice, y funciona bien.

Código HTML:
<head>
	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">

	<title>Untitled 1</title>
	<script type="text/javascript">
	function HoraActual(hora, minuto, segundo){
		segundo = segundo + 1;
		if(segundo == 60) {
			minuto = minuto + 1;
			segundo = 0;
			if(minuto == 60) {
				minuto = 0;
				hora = hora + 1;
				if(hora == 24) {
					hora = 0;
				}
			}
		}
		if(hora < 10) hora = '0' + hora;
		if(minuto < 10) minuto = '0' + minuto;
		if(segundo < 10) segundo = '0' + segundo;
		HoraCompleta= hora + " : " + minuto + " : " + segundo;
		document.getElementById('contenedor_reloj').innerHTML = HoraCompleta;
		setTimeout("HoraActual("+hora+", "+minuto+", "+segundo+")", 1000);
	} 
	</script>  
</head>

<body onload="HoraActual(<?php echo date("H").", ".date("i").", ".date("s"); ?>)">
<div id="contenedor_reloj"></div> 
</body> 
Me tomo unos minutos, pero lo logre. Talvez lo postee como aporte.
  #16 (permalink)  
Antiguo 26/02/2009, 12:03
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
De acuerdo Respuesta: Actualizar Reloj en PHP

ALELUYA! ahora si funciona de maravilla! muchisimas graciasa los 2, tanto a david_M_G como ha Ronruby..

Solo modifique una linea, xq debia sumarle 2hs para que sea la hora correcta en mi ciudad, quedo asi:

Código PHP:
<body onload="HoraActual(<?php echo date("H",time() + 7200).", ".date("i").", ".date("s"); ?>)">
gracias de nuevo! saludos!
  #17 (permalink)  
Antiguo 05/10/2009, 16:19
 
Fecha de Ingreso: octubre-2009
Mensajes: 40
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Actualizar Reloj en PHP

uno simple con javascript para que actualice la hora constantemente seria asi

<html>
<head>
<title>Reloj con Javascript</title>
<script language="JavaScript">
function mueveReloj(){
momentoActual = new Date()
hora = momentoActual.getHours()
minuto = momentoActual.getMinutes()
segundo = momentoActual.getSeconds()


horaImprimible = hora + " : " + minuto + " : " + segundo

document.form_reloj.reloj.value = horaImprimible

setTimeout("mueveReloj()",1000,1)
}
</script>
</head>

<body onload="mueveReloj()">

Vemos aquí el reloj funcionando...

<form name="form_reloj">
<input type="text" name="reloj" size="20">
</form>

</body>
</html>


lo otro que podrias hacer es adquirir la fecha del servidor.....pero ya es mas complicado....complicado en el aspecto que depende de donde este el servidor, pero como eneralmente el usuario es el que necesita la hora es mejor que le ponas el que te deje.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:36.