Foros del Web » Programando para Internet » Javascript »

Hora en javascript con PHP

Estas en el tema de Hora en javascript con PHP en el foro de Javascript en Foros del Web. Hola, lo pongo aquí porque al fin y al cabo hay que tratar Javascript y no PHP. El caso es que tengo una funciona que ...
  #1 (permalink)  
Antiguo 14/11/2011, 06:17
Avatar de altex  
Fecha de Ingreso: septiembre-2008
Ubicación: En mi casa
Mensajes: 47
Antigüedad: 15 años, 7 meses
Puntos: 4
Hora en javascript con PHP

Hola, lo pongo aquí porque al fin y al cabo hay que tratar Javascript y no PHP.

El caso es que tengo una funciona que pone la fecha y hora en una web, y se va actualizando cada segundo, pero necesito cojer la hora del servidor, por lo que la cojo con PHP.

El caso es que al pasar la hora del php al javascript, me cambia el dia de la semana y el año, el resto me lo muestra bien.

El script es el siguiente:

Código:
function HoraActual(fechaR){
	
	//alert(fechaR.getFullYear());
	
	var weekday = new Array("Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado");
	var Mes = new Array("Diciembre", "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");

	//alert(fechaR.getUTCSeconds());
	/* Capturamos la Hora */
	Hora = fechaR.getHours();

	/* Capturamos los Minutos */
	Minutos = fechaR.getMinutes();

	/* Capturamos los Segundos */
	Segundos = fechaR.getSeconds();
	
	if (Hora<=9){
	Hora = "0" + Hora;
	}
	if (Minutos<=9){
	Minutos = "0" + Minutos;
	}
	if (Segundos<=9){
	Segundos = "0" + Segundos;
	}
	
	fechaR.setSeconds(Segundos);
	
		//Viernes, 11 de Noviembre de 2011 09:14:04
		HoraCompleta= weekday[fechaR.getDay()]  + ", " + fechaR.getDate() + " de " + Mes[fechaR.getMonth()] + " de " + fechaR.getFullYear() + " " + Hora + ":" + Minutos + ":" + Segundos;
		document.getElementById('contenedor_reloj').innerHTML = HoraCompleta;
		Segundos = fechaR.getSeconds()+1;
		fechaR.setSeconds(Segundos);
		//fecha2= new Date(fechaR);
		//alert(fechaR.getUTCSeconds());
		//alert(fechaR);
		setTimeout('HoraActual(fechaR)',1000);		
	}
	
	function getHour(){
		<?php $fecha = date("Y").", ".date("n").", ".date("j").", ".date("G").", ".date("i").", ".date("s").", ".date("u");?>
		fechaR = new Date(<?php echo $fecha ?>);

		HoraActual(fechaR);
	}
  #2 (permalink)  
Antiguo 14/11/2011, 06:19
Avatar de altex  
Fecha de Ingreso: septiembre-2008
Ubicación: En mi casa
Mensajes: 47
Antigüedad: 15 años, 7 meses
Puntos: 4
Respuesta: Hora en javascript con PHP

Cuando lo muestro me incrementa 2 dias de la semana, y un año mas al actual, cargo la funcion getHour con un onload para que me lo muestre, ayuda pliiis :)

EDITO
-------------

Perdon, en vez de editar el otro he escrito otro, sorry

Última edición por altex; 14/11/2011 a las 06:19 Razón: Error!!
  #3 (permalink)  
Antiguo 14/11/2011, 08:01
Avatar de Rappa  
Fecha de Ingreso: noviembre-2011
Ubicación: Montevideo, Uruguay
Mensajes: 80
Antigüedad: 12 años, 5 meses
Puntos: 13
Respuesta: Hora en javascript con PHP

No se lo del año, pero lo del día de la semana puede estar por el lado que los dos lenguajes tomen por primer dia de la semana a dias distintos, por ejemplo, algunos toman el domingo como "6", por lo que el lunes sería "0", en cambio otros toman domingo como "1", haciendo a lunes "2".

.
__________________
Drugs and alcohol are not the answer
Unless you are asking what i'm doing this weekend

Última edición por Rappa; 14/11/2011 a las 08:01 Razón: correccion de ortografia
  #4 (permalink)  
Antiguo 14/11/2011, 09:51
 
Fecha de Ingreso: febrero-2010
Mensajes: 49
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Hora en javascript con PHP

quieres que en todos los ordenadores que se conecten al sitio te muestren la hora del servidor, por ello quieres que las variables en javascript de tiempo sean manipuladas por php. Se lo que buscas.

Código PHP:
function hora_local($zona_horaria 0)
{
    if (
$zona_horaria > -12.1 and $zona_horaria 12.1):
        
$h_local time() + ($zona_horaria 3600);
        return 
$h_local;
    endif;
    return 
'error';
}
$zona_horaria = -5;// con esto manipulas la hora de la zona que quieres que se muestre
$fecha gmdate(hora_local($zona_horaria)); 
con esto vas a tener la hora del servidor en milisegundos, ahora solo tienes que manipular $fecha con date() e insertarlas en tus variables javascript.

NOTA: Si solo quieres adelantar los 2 dias y años que te falla, aumenta o disminulle en milisegundos tus variables.

Última edición por yamatadvd2000; 14/11/2011 a las 09:53 Razón: NOTA

Etiquetas: funcion, html, php
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:14.