Zona horaria predeterminada de php.ini vs. date.timezone
Cuando uso PHP'sdate()
Funcionando en dos servidores diferentes, obtengo dos resultados diferentes, pero ambos servidores deberían ser iguales.
Revisé elphp.ini
archivo en el servidor # 1, donde la hora es correcta, y se ve como sigue:
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
Lo comprobé en el servidor # 2 y se ve como sigue:
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
La única diferencia que veo es el valor de "Zona horaria predeterminada".
La fecha / hora de los dos servidores actuales se muestran como:
Server #1: 10/23/2012 09:40:39
Server #2: 10/23/2012 14:40:39
Confirmé que ambos servidores utilizan elphp.ini
ubicado dentro de/etc
y también busqué en ambos directorios web en cualquier lugar donde se pueda sobrescribir la zona horaria:
grep -r "date_default_timezone_set" *
Pero en ese sentido, ambos contienen los mismos archivos con la misma configuración.
¿Es "Default timezone" lo que está causando la diferencia de 5h? Si es así, ¿cómo lo corrijo?
ACTUALIZAR
Archivos de configuración cargados.
El servidor # 2 contiene dos archivos ini adicionales:
/etc/php.d/snmp.ini
/etc/php.d/apc.ini
php -i resultados.
Servidor 1:
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
Lo que es interesante observar aquí es que, por alguna razón, la "zona horaria predeterminada" no coincide con el servidor n. ° 2 al verlo a través dephp -i
versusphpinfo()
en una página web.
SOLUCIÓN
El problema fue con el CMS y sus complementos. Si bien los servidores # 1 y # 2 tenían los mismos archivos y todo, parece que los complementos no se cargan en el mismo orden en cada servidor, lo que permitió que el último complemento cargado determinara la zona horaria de mi script.
La razónphp -i
yphpinfo
diferido es porque despues de usardate_default_timezone_set()
, afecta a quephpinfo()
se imprimirá
La solución fue la garantía de que estoy en la zona horaria en la que necesitaba estar a través dedate_default_timezone_set()
. La razón por la que no funcionó para mí antes de publicar esta pregunta fue porque declaré esto antes de cargar algunos archivos requeridos desde el CMS, que probablemente configuró la zona horaria nuevamente allí.