php.ini default timezone vs. date.timezone

Wenn ich PHP benutzedate() Funktion auf zwei verschiedenen Servern, bekomme ich zwei unterschiedliche Ergebnisse, aber beide Server sollten gleich sein.

Ich habe das überprüftphp.ini Datei auf Server 1, auf dem die Uhrzeit korrekt ist und wie folgt aussieht:

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

Ich habe Server 2 überprüft und es sieht folgendermaßen aus:

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

Der einzige Unterschied, den ich sehe, ist der Wert "Standard-Zeitzone".

Das Datum / die Uhrzeit für beide Server wird aktuell angezeigt als:

Server #1: 10/23/2012 09:40:39
Server #2: 10/23/2012 14:40:39

Ich habe bestätigt, dass beide Server diephp.ini befindet sich innerhalb/etc Außerdem habe ich beide Webverzeichnisse nach Orten durchsucht, an denen die Zeitzone möglicherweise überschrieben wird:

grep -r "date_default_timezone_set" *

In dieser Hinsicht enthalten beide dieselben Dateien mit denselben Einstellungen.

Ist "Standard-Zeitzone" der Grund für den Unterschied von 5 Stunden? Wenn ja, wie korrigiere ich das?

AKTUALISIEREN

Geladene Konfigurationsdateien.

Server 2 enthält zwei zusätzliche INI-Dateien:

/etc/php.d/snmp.ini
/etc/php.d/apc.ini

PHP-i Ergebnisse.

Server 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

Server 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

Interessanterweise stimmt die "Standard-Zeitzone" auf Server 2 nicht überein, wenn sie über angezeigt wirdphp -i gegenphpinfo() auf einer Webseite.

LÖSUNG

Das Problem war mit dem CMS und seinen Plugins. Während Server 1 und 2 die gleichen Dateien und alles hatten, scheint es, dass Plugins nicht in der gleichen Reihenfolge auf jedem Server geladen werden, sodass das zuletzt geladene Plugin die Zeitzone meines Skripts bestimmen konnte.

Der Grundphp -i undphpinfo anders ist da nach dem gebrauchdate_default_timezone_set(), es beeinflusst wasphpinfo() wird gedruckt.

Die Lösung bestand darin, sicherzustellen, dass ich in der Zeitzone bin, in der ich mich befinden musstedate_default_timezone_set(). Der Grund, der vor dem Posten dieser Frage für mich nicht funktioniert hat, war, dass ich dies vor dem Laden einiger erforderlicher Dateien aus dem CMS deklariert habe, wodurch die Zeitzone dort wahrscheinlich erneut festgelegt wurde.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage