O horário de verão acabou no último domingo 15/02/2009, fato que eu comemorei antecipadamente em plena sexta-feira 13. Porém, como alegria de pobre dura pouco, verifiquei que com os servidores tudo ok, o horário foi corrigido ‘automágicamente’, mas… (sempre tem que ter um ‘mas’) o php não colaborou comigo e mantinha o horário de verão. Precisei então atualizar o “Olson Timezone Database Version“.
Se eu fizesse um date no terminal eu recebia:
# date
Ter Fev 17 10:15:35 BRT 2009
mas se fizesse um: # php -r “print date(‘d/m/Y H:i:s e T’);”, tinha como resposta:
17/02/2009 11:15:36 America/Sao_Paulo BRT
Vi em muitos tutoriais a simples sujestão de usar um:
pecl install timezonedb
Mas esta sugestão acima simplesmente não funcionou comigo, só consegui solucionar o problema da seguinte forma:
- Entrei no diretório opt (é nele que sempre costumo deixar minhas instalações) e fiz os seguintes comandos:
pecl bundle timezonedb
cd timezonedb
phpize
./configure
make
make test
make install - Editei o arquivo /usr/local/lib/php.ini, comentando a linha abaixo (sempre prefiro comentar do que excluir, caso algo dê errado é só descomentar):
;extension_dir = “/usr/local/lib/php/extensions/no-debug-non-zts-20020429″
- E acrescentei logo abaixo mais duas linhas:
extension_dir = “/usr/local/lib/php/extensions/no-debug-non-zts-20060613″
extension=timezonedb.so - Com isso, salvei o arquivo e reiniciei o apache, ao comparar novamente as datas com os comandos que citei logo no começo do post, elas estavam ok.
Lembrando que todos os comandos acima foram executados como root
note que no exemplo em que passei acima a linha já está comentada com um “;” (ponto e vírgula)
Não sei se mais alguém passou pelo mesmo problema, mas fica aí a dica. Obviamente eu pesquisei em um monte de lugar para conseguir encontrar a solução, mas as fontes que mais me ajudaram foram estas duas:
Atualização do horário de verão no PHP e
PECL timezonedb fun