Foros del Web » Programando para Internet » Javascript »

Reloj con zona horaria dinamica en base a base de datos

Estas en el tema de Reloj con zona horaria dinamica en base a base de datos en el foro de Javascript en Foros del Web. Hola amigos foristas Mi problema es el siguiente, tengo una base de datos mysql de la cual saco datos con PHP, y uno de ellos ...
  #1 (permalink)  
Antiguo 01/01/2009, 17:16
 
Fecha de Ingreso: diciembre-2008
Mensajes: 70
Antigüedad: 15 años, 4 meses
Puntos: 4
Reloj con zona horaria dinamica en base a base de datos

Hola amigos foristas

Mi problema es el siguiente, tengo una base de datos mysql de la cual saco datos con PHP, y uno de ellos es la zona horaria de el usuario, ahora, tengo un reloj javascript que me calcula el tiempo en horario GMT ó UTC o Zulu (como le quieran llamar, es lo mismo), el codigo de ese reloj es el siguiente:
Código:
<script type="text/javascript">
 function gmtClock(){
    time = new Date()
    gmtMS = time.getTime() + (time.getTimezoneOffset() * 60000)
    gmtTime =  new Date(gmtMS)
    hour = gmtTime.getHours()
    minute = gmtTime.getMinutes()
    second = gmtTime.getSeconds()
    temp = "" + ((hour < 10) ? "0" : "") + hour
    temp += ((minute < 10) ? ":0" : ":") + minute
    temp += ((second < 10) ? ":0" : ":") + second
    document.clockForm.digits.value = temp + " GMT"
    setTimeout("gmtClock()",1000)
    }  
</script>
Esto funciona perfectamente, solamente que quiero que cuando el usuario este loggeado se cambie la zona horaria de GMT a la zona horaria que este en la base de datos, ya que, el usuario puede cambiar esa zona horaria y por lo tanto la zona horaria podria ser diferente entre la base de datos y la de el cliente, por tanto no me serviria sacar el reloj con la zona del cliente.

El php se encarga de verificar si el usuario esta loggeado o no y cambia entre el script anterior a el script que no me funciona, que es el que necesito que cambie con la zona horaria, para no hacerlos bolas les pongo el codigo completo:
Código PHP:
<?php
if($session->loggeado){
?>
<script type="text/javascript">
 function gmtClock(){
     horar = <?php echo $session->infoUsuario['horario'] * 60?>;
    time = new Date()
    gmtMS = time.getTime() + (horar * 60000)
    gmtTime =  new Date(gmtMS)
    hour = gmtTime.getHours()
    minute = gmtTime.getMinutes()
    second = gmtTime.getSeconds()
    temp = "" + ((hour < 10) ? "0" : "") + hour
    temp += ((minute < 10) ? ":0" : ":") + minute
    temp += ((second < 10) ? ":0" : ":") + second
    document.clockForm.digits.value = temp + " GMT " + <?php echo $session->infoUsuario['horario']; ?>;
    setTimeout("gmtClock()",1000)
    }  
</script>
<?php
}
else{
?>
<script type="text/javascript">
 function gmtClock(){
    time = new Date()
    gmtMS = time.getTime() + (time.getTimezoneOffset() * 60000)
    gmtTime =  new Date(gmtMS)
    hour = gmtTime.getHours()
    minute = gmtTime.getMinutes()
    second = gmtTime.getSeconds()
    temp = "" + ((hour < 10) ? "0" : "") + hour
    temp += ((minute < 10) ? ":0" : ":") + minute
    temp += ((second < 10) ? ":0" : ":") + second
    document.clockForm.digits.value = temp + " GMT"
    setTimeout("gmtClock()",1000)
    }  
</script>
<?php
}
?>
El problema aqui es que no me da la hora de la zona horaria, el formato de la zona horaria en la base de datos es Ej. -6, es decir cuenta ya con el signo mas(+) o menos(-) pero a la hora de llegar a la linea en la que se debe de mostrar lo muestra como string y por tanto no es como si cambiara el signo. (Ejemplo. La zona horaria es -6, la variable horar es -6, al llegar a la linea "gmtMS = time.getTime() + (horar * 60000)" no esta contando el signo (+) ó (-) y lo esta haciendo como si fuera positivo :S) y si esa linea estuviera de la siguiente manera "gmtMS = time.getTime() -6 * 60000)" tampoco funciona, y deberia de... no?

Porfavor ayudenme llevo dias rompiendome la cabeza por solucionar esto y nadamas no encuentro nada en internet.

Gracias y Saludos
  #2 (permalink)  
Antiguo 01/01/2009, 19:32
 
Fecha de Ingreso: diciembre-2008
Mensajes: 70
Antigüedad: 15 años, 4 meses
Puntos: 4
Respuesta: Reloj con zona horaria dinamica en base a base de datos

Nadie que tenga idea de como solucionarlo?
  #3 (permalink)  
Antiguo 01/01/2009, 21:56
 
Fecha de Ingreso: diciembre-2008
Mensajes: 70
Antigüedad: 15 años, 4 meses
Puntos: 4
Respuesta: Reloj con zona horaria dinamica en base a base de datos

Lo he solucionado, lo que hice fue utilizar el script de aca http://www.maxxblade.co.uk/clock y a eso ya le modifique mediante php el utc deseado para que fuera dinamico.

Saludos
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 08:43.