Estou trabalhando em um aplicativo da Web onde haverá muitos usuários diferentes de todo o mundo fazendo atualizações. Gostaria de saber qual seria a melhor maneira de lidar com fusos horários? Idealmente, quando um evento acontece, todos os usuários o veem usando seus horários locais.
O horário do sistema operacional do servidor deve ser definido como GMT, horário do local físico ou horário do meu local de desenvolvimento?
A lógica do aplicativo (PHP) e o banco de dados (MySQL) devem ser configurados para armazenar dados como GMT ou hora local (local para os usuários)?
Existe um padrão da indústria ou mesmo uma solução simples / óbvia que simplesmente não estou vendo?
timestamp
tem um intervalo limitado de1970-01-01 00:00:01 UTC
até2038-01-19 03:14:07 UTC
, o que, por exemplo, não permite armazenar datas de nascimento (pelo menos não para pessoas com mais de 40 anos). De fato,timestamp
é a solução menos adequada para armazenar registros de data e hora. Use umdatetime
campo e armazene tudo como UTC.Eu usaria a hora UTC no banco de dados e os clientes a converteriam na hora local quando necessário
fonte