Foros del Web » Programando para Internet » PHP »

Sobre gmdate()

Estas en el tema de Sobre gmdate() en el foro de PHP en Foros del Web. Hola... Ya he leido varios mensajes acerca de esta funcion y las zonas horarias, pero no logro sacarme un par de dudas. 1) Cuando yo ...
  #1 (permalink)  
Antiguo 28/10/2003, 21:56
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 15 años, 6 meses
Puntos: 0
Sobre gmdate()

Hola...
Ya he leido varios mensajes acerca de esta funcion y las zonas horarias, pero no logro sacarme un par de dudas.

1) Cuando yo hago gmdate('Y-n-j H:i:s') sale la hora GMT 0 verdad? Si es asi, como sabe PHP como averiguar la hora GNT 0? O sea, si esta en diferentes paises e, server, siempre va a dar la misma fecha GMT 0? Si es asi como corno hace?????? Que alguin me explique por favor, yo creo que no es asi y que me estoy equivocando.

2) Suponiendo que ya tengo la hora GMT 0, y que se que la zona horaria de un pais X es GMT -1, bastaria con restarla a la GMT 0 1 hora. Hasta ahi bien. Pero que pasa si este pais cambia su horario en verano, atrasandolo 1 hora? Aca ya no habria calculo que valga verdad? O sea, tendria que, A MANO, restarle ahora 2 horas en vez de una. Es esto asi? Porque si es asi, entonces como puedo afrecerle a un usuario del pais X configurar su horario en el sitio? Digo, cuando llegue el verano el horario que le entrego no va a ser el correcto. Eso pasa aca?

Bueno, ojala que alguien pueda sacarme estas dudas que me ponen loco. Gracias.


Se me ocurre otra duda mas.
Que pasa con el listado de cumpleañeros? Como hacen? O sea, todos los usuarios, sean del pais que sean, deberian ver que alguien cumple años en el mismo momento, para saludarlo a tiempo. Pero si hacemos esto el "saludador" que tiene otra zona horaria podria creer, segun el horario y la diferencia GMT, que el cumpleañero cumple un dia equivocado. Ademas no se me ocurre como mostrar el cumpleaños para todos los miembros al mismo tiempo (miembro con diferente zona horaria).
Y si mostramos el cumpleaños de acuerdo a la fecha de cada usuario, o sea de acuerdo a su zona horaria, entonces cuando saluuden al cumpleañero pueden hacerlo antes, o despues de su cumpleaños.

Todas estas preguntas me vienen porque hasta ahora siempre me maneje con la hora del server. Y ahora que lo quiero hacer "mas portable", y seguir mostrando cumpleaños y demas, se me complica.

Ayuda!!!!!!! Aclaraciones please!!!!!!!!!1

Última edición por zeus_bsas; 28/10/2003 a las 23:46
  #2 (permalink)  
Antiguo 29/10/2003, 20:43
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 15 años, 6 meses
Puntos: 0
Nadie puede darme aunque sea una opinion?
  #3 (permalink)  
Antiguo 30/10/2003, 06:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
1) Las hora GMT la obtiene PHP del servidor y este se la da a su vez el Sistema Operativo. Cuando configuras la hora de tu sistema operativo le dices en que franja horaria está. Ásí que si tu le pides la hora GMT sólo hace que restar/sumar la diferencia horaria que configurastes.

2) Para lo que propones ..Hace un tiempo hice una función para tal fin. Puedes verla aquí:

http://www.forosdelweb.com/showthrea...hreadid=119333

** Lo que comentas del ajuste horario .. Tienes unos servidores especiales de Hora. Cada pais tiene el suyo con la hora local del pais exacta. Y si quieres la hora GMT 0 .. solo tienes que ve la hora del Meridiano de Greenwich.

Estos servidores usan el protocolo NTP (o SNTP):
http://www.faqs.org/rfcs/rfc1769.html

Si quieres .. puedes hacerte un script que vía sockets conecte a este tipo de servidores y obtenga la hora exacta GMT 0 (o incluso la hora exacta de X país) ..

Ejemplo en PHP:
http://www.php-resource.de/forum/sho...d/t-11057.html
(sólo recuerda que la conexión a ese servidor puede demorarse un tiempo .. así que mejor actualiza (sincroniza) la hora cuando cambie el horario de verano/invierto, .. pero, esto lo debería hacer tu servidor (con su sistema operativo) no tus scripts).

** El tema de los "cumpleaños"... Fijate cuando se celebra año nuevo .. Si ves la TV ese dia 31 diciembre .. veras como te van dando noticias de que en "china" ya es año nuevo .. luego otro pais .. y así con todos hasta que le llega a tu pais (esto es más bien clase de geografía xDD .. te recuerdo que la tierra rota sobre si misma :P).

Así que todos los que estén en esa franja horaria (del que cumple los años) podrán felicitarle a la hora exacta .. Los demás lo harán con adelanto o retraso según corresponda.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 30/10/2003, 11:46
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 15 años, 6 meses
Puntos: 0
Cluster, gracias por las primeras aclaraciones.

En cuanto a
Cita:
** El tema de los "cumpleaños"... Fijate cuando se celebra año nuevo .. Si ves la TV ese dia 31 diciembre .. veras como te van dando noticias de que en "china" ya es año nuevo .. luego otro pais .. y así con todos hasta que le llega a tu pais (esto es más bien clase de geografía xDD .. te recuerdo que la tierra rota sobre si misma :P).
Era necesario decirme que necesito aprender geografia? Te parece que vengo aca a aprender eso? Te parece que alguien puede no saberlo?
Lo que preguntaba era que hacer, solo eso. Segun lo que me decis, pareciera que me recomendas mostrar los cumpleaños de acuerdo a la zona horaria de quien mira la lista? Yo solo preguntaba opiniones acerca de que era lo mas aconsejable, si hacerlo asi, o mostrar los cumpleaños para una zona horaria fija independientemente de quien lo mira, o segun la zona horaria de quien cumple años.
  #5 (permalink)  
Antiguo 30/10/2003, 11:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues lo más lógico sería mostrar los cumpleaños según la franja horaria que tu usuario seleccione ..

Exactamente lo mismo que estos foros, aquí puedes elegir en que franja horaria estás y en función de eso se te reajusta todo. No sólo las fechas/horas de los mensajes sino hasta el recordatorio de quien está de cumpleaños hoy.

Con respecto a la "geografía" . si te molestó .. lo siento .. pero esos XD y :P (smiles) expresan el tono de broma de mi frase sin animo de ofender.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 30/10/2003, 13:04
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 15 años, 6 meses
Puntos: 0
Muchas gracias Cluster.
Te hago una ultima pregunta, en realidad es pedirte otra opinion o preguntarte que acostumbras hacer vos.
Para las fechas (registro, cumpleaños, etc) que formato utilizas en la BD? Yo hasta ahora lo hacia con date o datetime, pero me pregunto si trae alguna ventaja extra guradarlo como timestamp. Lo unico que veo es que mirando la base sin la aplicacion uno no podria leer las fechas, pero hace poco me han dicho por chat que era aconsejable hacerlo asi.
Vos que opinas y/o haces?
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 07:19.