Blog do TaQ

Atualização do horário de verão no PHP

Publicado em Developer

Para os que pensavam que eu trabalho todo dia com Rails, devo dizer que estão enganados, ainda mantenho alguns projetos grandes com PHP e não vai dar para migrar tão cedo por causa de uma coisa chamada tempo, que desaparece mesmo com todos os ganhos de produtividade que o Rails nos dá, mas enfim ... ainda uso bastante PHP. :-)

E nesses últimos dias tive um problema com o horário de verão. Depois que foi anunciado oficialmente, atualizei os meus computadores de acordo com as instruções mas servidor web insistia em mostrar a hora adiantada. Aí fiz uma pesquisa rápida e descobri (é, só vim a saber disso agora, vergonha!) que o PHP mantém um banco de dados de timezones similar ao Java, por um lado pior e por um lado melhor.

Pior pois no Java dá para fazer algumas gambiarras e criar uma timezone com o horário de verão customizado, melhor pois no PHP dá para se atualizar o banco de dados usando uma extensão chamada timezonedb, mas há de se esperar que seja atualizada com as últimas alterações do nosso horário de verão.

Por sorte enviei um email para o mantenedor da extensão, e sorte ou coincidência, poucos minutos após ele responder o email enviou outro com a atualização da mesma. Eu fiz um teste antes de habilitar a extensão:

[taq@~]php -r "print date('d/m/Y H:i:s e T');"
17/10/2006 19:31:01 America/Sao_Paulo BRST

Após atualizar a extensão (que deve ser devidamente indicada no arquivo php.ini como extension=timezonedb.so), o comando acima me retornou:

[taq@~]php -r "print date('d/m/Y H:i:s e T');"
17/10/2006 18:31:01 America/Sao_Paulo BRT

Ou seja, o horário correto, pois nosso horário de verão só começa no próximo dia 5 de Novembro.


Tags:


Comentários

comments powered by Disqus

Twitter