Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

CURRENT_TIMESTAMP del server

Estas en el tema de CURRENT_TIMESTAMP del server en el foro de Mysql en Foros del Web. Hola :) Cuando ejecuto mi web con la qry: Código PHP: $fechaactual  =  mysql_fetch_array ( mysql_query ( "SELECT CURRENT_TIMESTAMP AS Time" ));  Lo que sucede es que toma ...
  #1 (permalink)  
Antiguo 24/12/2011, 06:40
 
Fecha de Ingreso: abril-2010
Ubicación: Ping: BSAS - Arg
Mensajes: 791
Antigüedad: 14 años
Puntos: 25
CURRENT_TIMESTAMP del server

Hola :)

Cuando ejecuto mi web con la qry:

Código PHP:

$fechaactual 
mysql_fetch_array(mysql_query("SELECT CURRENT_TIMESTAMP AS Time")); 
Lo que sucede es que toma como hora la hora del cliente y no del servidor.
Osea, según la pc puede variar la hora.

¿Como puedo tomar la hora del servidor en el mismo formato en que lo entrega CURRENT_TIMESTAMP?

Gracias desde ya!
  #2 (permalink)  
Antiguo 24/12/2011, 08:50
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: CURRENT_TIMESTAMP del server

Cita:
Lo que sucede es que toma como hora la hora del cliente y no del servidor.
En realidad, el PHP se ejecuta en el servidor, y la consulta en el servidor de MySQL, que se halla donde la dirección del host en la conexión se indique, por lo que la hora devuelta debería ser la del servidor, no la del cliente.
Lo que puede suceder es que ese dato esté volviendo con el ajuste de uso horario (TMZ) del cliente, por lo que se puede estar corrigiendo al mostrarlo.
De todos modos es un tema que los del Foro de PHP conocen mejor, por lo que te sugeriría que lo consultaras allí.
A nivel de la base, lo único que te podemos asegurar es que si la consulta se ejecuta en el servidor de MySQL, te devolverá la hora del servidor.

Esto lo ejecuté en servidor remoto (hosting en web):
Time

Código MySQL:
Ver original
  1. +---------------------+
  2. | Time                |
  3. +---------------------+
  4. | 2011-12-24 06:48:41 |
  5. +---------------------+
Y esto lo ejecuté en servidor local (Argentina):
Código MySQL:
Ver original
  1. +---------------------+
  2. | Time                |
  3. +---------------------+
  4. | 2011-12-24 11:56:06 |
  5. +---------------------+
  6. 1 row in set (0.00 sec)
Hubo alrededor de 25 segundos de diferencia entre ambas ejecuciones, pero como el servidor remoto se halla en la costa oeste de EE.UU. y nosotros en Argentina, hay un desfasaje de 5 horas.
En otras palabras, si estás enviando esa consutla a un hosting, la hora que devuelve es la del servidor. El problema es qué es lo que está interpretando la aplicación, es decir, si está corrigiendo la respuesta para acomodarla a la hora del cliente.

Por otro lado, trata de no usar palabras reservadas en los alias o nombres de objetos de la base, porque pueden generar errores de sintaxis difíciles de detectar. TIME es un tipo de dato, no debe usarse como alias ni como nombre.
Una buena costumbre es no usar denominaciones en inglés, que es donde más fácilmente se producen estos problemas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 24/12/2011 a las 09:05
  #3 (permalink)  
Antiguo 24/12/2011, 10:18
 
Fecha de Ingreso: abril-2010
Ubicación: Ping: BSAS - Arg
Mensajes: 791
Antigüedad: 14 años
Puntos: 25
Respuesta: CURRENT_TIMESTAMP del server

Bien explicado, intentaré tocando zonas horarias aver que pasa ;)
Mil gracias!

Etiquetas: query, select, server
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 19:25.