Estoy trabajando en una aplicación web donde habrá muchos usuarios diferentes de todo el mundo haciendo actualizaciones. Me pregunto cuál sería la mejor manera de manejar las zonas horarias. Idealmente, a medida que ocurre un evento, todos los usuarios lo ven usando su hora local.
¿Debe configurarse la hora del sistema operativo del servidor en GMT, la hora de ubicación física o la hora de mi ubicación de desarrollo?
¿Deberían configurarse la lógica de la aplicación (PHP) y la base de datos (MySQL) para almacenar datos como GMT u hora local (local para los usuarios)?
¿Existe un estándar de la industria o incluso una solución simple / obvia que simplemente no estoy viendo?
timestamp
tiene un rango limitado de1970-01-01 00:00:01 UTC
a2038-01-19 03:14:07 UTC
, que por ejemplo no permite almacenar fechas de nacimiento (al menos no para personas mayores de 40 años). De hecho,timestamp
es la solución menos adecuada para almacenar registros de fecha y hora. Use undatetime
campo y almacene todo como UTC.Usaría la hora UTC en la base de datos y los clientes deberían convertirla a su hora local cuando sea necesario
fuente