Foros del Web » Programando para Internet » PHP »

Problemas de Fecha

Estas en el tema de Problemas de Fecha en el foro de PHP en Foros del Web. Hi poseo problemas con los valores de fecha y hora del sistema, ya que el servidor de php, varia muchos sus valores de fechay hora, ...
  #1 (permalink)  
Antiguo 28/07/2004, 13:53
Avatar de jordia  
Fecha de Ingreso: septiembre-2003
Ubicación: Cali
Mensajes: 77
Antigüedad: 14 años, 2 meses
Puntos: 0
Mensaje Problemas de Fecha

Hi
poseo problemas con los valores de fecha y hora del sistema, ya que el servidor de php, varia muchos sus valores de fechay hora, y tambien los clientes no tienen configurado correctamente la fecha y hora, mi pregunta es:
De que otra forma obtengo la fecha y hora especifica de una zona especifica por ejemplo donde me ubico -500?
__________________
Jorgediaz.info
La felicidad esta en acortar la brecha entre tus sueños y la realidad!!
  #2 (permalink)  
Antiguo 28/07/2004, 15:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero ... tu guardas en tus BD o similares la fecha del sistema .. pero del servidor ..o de los clientes?

Lo que debes es guardar la fecha del servidor (en PHP sería date() por ejemplo con el formato que le des ..) y si luego tienes "clientes" (usuarios en navegadores) de vários paises diferentes si quiers puedes hacer el ajuste horario para presentar la hora relativa a su zona horaria (la que el usuario defina o detectes que correspondería).

Un saludo,
  #3 (permalink)  
Antiguo 28/07/2004, 16:17
Avatar de jordia  
Fecha de Ingreso: septiembre-2003
Ubicación: Cali
Mensajes: 77
Antigüedad: 14 años, 2 meses
Puntos: 0
No me entendistes

Disculpa si no me hice entender, pero lo que quiero es poder tener una hora en concreto si realizo una operacion ahora necesito que quede grabada en mi bd como la hora que es en la zona horaria GTM -05:00.
O mejor dicho como consultar a un servidor de hora para que me de la hora en el que yo desee
__________________
Jorgediaz.info
La felicidad esta en acortar la brecha entre tus sueños y la realidad!!
  #4 (permalink)  
Antiguo 29/07/2004, 09:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Lo que deberías hacer es guardar tus horas en horario GMT 0 para hacer el ajuste en el monento de presentar tus fechas/horas con la diferencia horaria aplicada en función de donde esté el usuario o quieras presentar esos datos ..

En PHP tienes la función mktime() y gmmktiem() par formar horas (pasadas/futuras o ahora). Y con date() le das el formato que necesites para mostrarlo/almacenarlo donde requieras.

Con esas funciones puedes componer tu hora como gustes aplicando la direrencia horaría en el parámetro "hora" de estas funciones.

Pero si usas Base de datos . .deberías hacerlo por SQL y no por médio de PHP, pues todas las BD tienen sus própias funciones para trabajar con fechas (incluso UTC

Si usas Mysql .. te vendría bien leer la documentación al respecto:
http://dev.mysql.com/doc/mysql/en/Da...functions.html

un ejemplo extraido del própio manual (comentarios de los usuarios) sería:

SELECT date_format(DATE_SUB(campo_fecha),
INTERVAL 5 HOUR), '%M %e, %Y at %H:%i EST') as fecha_gmt_5 FROM
tabla;

Ahí mostrarías la fecha almacenada en tu BD con -5 horas de diferencia. Por eso sería recomendable guardar la fecha en GMT 0 ..para que según requieras así muestres tus diferencias horarias . sino, te basas en la diferencia horaria de tu servidor Mysql con respecto a GMT 0 y en lugar de ser -5 si está en otra ubicación .. será -X .. pero el + o - GMT de la hubicación de tu servidor Mysql físicamente será una constante.

Las mismas funciones SQL (menos date_format) podrías aplicarlas para guardar tu fecha con tu deferencia horaria aplicada ..

Un saludo,

Última edición por Cluster; 29/07/2004 a las 09:16
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 11:02.