fuso horário padrão do php.ini vs. date.timezone
Quando eu uso o PHPdate()
função em dois servidores diferentes, recebo dois resultados diferentes, mas os dois servidores devem ser os mesmos.
Eu verifiquei ophp.ini
arquivo no servidor # 1, onde a hora está correta, e parece da seguinte maneira:
date/time support enabled
"Olson" Timezone Database Version 0.system
Timezone Database internal
Default timezone America/Chicago
Directive Local Value Master Value
---------------------------------------------------
date.timezone America/Chicago America/Chicago
Eu verifiquei no servidor # 2 e parece o seguinte:
date/time support enabled
"Olson" Timezone Database Version 0.system
Timezone Database internal
Default timezone UTC
Directive Local Value Master Value
---------------------------------------------------
date.timezone America/Chicago America/Chicago
A única diferença que vejo é o valor "fuso horário padrão".
A data / hora para os dois servidores atuais é exibida como:
Server #1: 10/23/2012 09:40:39
Server #2: 10/23/2012 14:40:39
Confirmei que ambos os servidores usam ophp.ini
localizado dentro/etc
e também pesquisei os dois diretórios da Web em qualquer lugar em que o fuso horário pode ser substituído:
grep -r "date_default_timezone_set" *
Mas a esse respeito, ambos contêm os mesmos arquivos com as mesmas configurações.
É "fuso horário padrão" o que está causando a diferença de 5h? Se sim, como corrijo?
ATUALIZAR
Arquivos de configuração carregados.
O servidor nº 2 contém dois arquivos ini adicionais:
/etc/php.d/snmp.ini
/etc/php.d/apc.ini
php -i resultados.
Servidor1:
date/time support => enabled
"Olson" Timezone Database Version => 0.system
Timezone Database => internal
Default timezone => America/Chicago
Directive => Local Value => Master Value
date.timezone => America/Chicago => America/Chicago
Servidor # 2:
date/time support => enabled
"Olson" Timezone Database Version => 0.system
Timezone Database => internal
Default timezone => America/Chicago
Directive => Local Value => Master Value
date.timezone => America/Chicago => America/Chicago
O que é interessante notar aqui é que, por algum motivo, o "fuso horário padrão" não corresponde no servidor # 2 ao visualizá-lo viaphp -i
versusphpinfo()
em uma página da web.
SOLUÇÃO
O problema estava com o CMS e seus plugins. Embora os servidores 1 e 2 tenham os mesmos arquivos e tudo, parece que os plug-ins não são carregados na mesma ordem em cada servidor, o que permitiu que o último plug-in carregado determinasse o fuso horário do meu script.
O motivophp -i
ephpinfo
diferente é porque depois de usardate_default_timezone_set()
, afeta o quephpinfo()
irá imprimir.
A correção foi a garantia de que estou no fuso horário em que eu precisava estardate_default_timezone_set()
. A razão que não funcionou para mim antes de postar esta pergunta foi porque eu declarei isso antes de carregar alguns arquivos necessários do CMS, o que provavelmente configurou o fuso horário novamente lá.