Acredito ter encontrado uma espécie de bug bizarro do PHP versões 5.1.x em servidores Linux.
O problema: O PHP 5.1.x não simplesmente pega a data/hora do sistema. Ele pega a timezone do sistema e calcula a hora a partir disso. Até aí, beleza. Estava tudo indo bem até domingo, quando DEVERÍAMOS ter entrado em horário de verão, mas não entramos por questão de decretos. Os sistemas linux, corretamente configurados, não entraram. Mas os PHPs surtados olharam a timezone America/Sao_Paulo do sistema, olharam a data, e resolveram que estão em horário de verão. Resultado: a data do sistema está correta, mas as aplicações PHP apresentam hora errada (entraram em horário de verão independente da hora do sistema).
UPDATE!!!!!!!!! AGORA SIM!!!!!!
A solução correta: Segundo o blog do TaQ, instalar o timezonedb. Depois de lutar pra compilar o timezonedb, corrigi uns symlinks e bingo, funcionou. Ou seja: é isso mesmo. Grande timezonedb, conserta o problema. Para instalá-lo, você vai precisar de uma versão recente do PHP, do pacote php-dev da sua distribuição, php-pear, e, eventualmente, de alguma experiência em troubleshooting. ;) Mas, no final, vai funcionar.
O workaround (nome bonito pra gambiarra): No php.ini das versões 5.1.x, existe uma opção date.timezone, que deve ser descomentada e alterada para GMT -3:00. Por causa das bizarrices do PHP, a opção de timezone relativa à zona GMT -3:00 (usada no Brasil sem horário de verão), é Etc/GMT+3 - assim mesmo, com sinal de mais. Portanto, a linha em questão ficará assim:
date.timezone = Etc/GMT+3
O problema, como toda gambiarra tem, é que isso terá que ser alterado manualmente (ou por um script, claro, mas continua sendo “feio”) no dia 5/11 e novamente no dia 25/2, quando, respectivamente, começa e termina o horário de verão.
Gostaria de lembrar que o problema ocorre mesmo nas versões mais recentes do PHP. Se alguém souber de alguma dica, eu agradeço. Eu realmente não tenho idéia de como resolver isso de uma maneira “bonita” - Agradeço muito a dica do Dirceu, que vai certamente resolver meu problema, é só uma questão de tempo agora.
Lista de Presentes 2008:
Paint it Black:
A Volta:
Sorria, você saiu da Barra:
Timezone louca no PHP:
Golpe?: