php.ini domyślna strefa czasowa vs. date.timezone

Kiedy używam PHPdate() działają na dwóch różnych serwerach, otrzymuję dwa różne wyniki, ale oba serwery powinny być takie same.

Sprawdziłemphp.ini plik na serwerze # 1, gdzie czas jest poprawny i wygląda następująco:

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

Sprawdziłem na serwerze # 2 i wygląda to następująco:

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

Jedyną różnicą, jaką widzę, jest wartość „Domyślna strefa czasowa”.

Data / godzina bieżącego wyświetlania obu serwerów jako:

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

Potwierdziłem, że oba serwery używająphp.ini znajduje się w obrębie/etc przeszukałem także oba katalogi internetowe w dowolnym miejscu, w którym strefa czasowa może zostać nadpisana:

grep -r "date_default_timezone_set" *

Ale pod tym względem oba zawierają te same pliki z tymi samymi ustawieniami.

Czy „Domyślna strefa czasowa” powoduje różnicę 5 godzin? Jeśli tak, jak mam to poprawić?

AKTUALIZACJA

Załadowane pliki konfiguracyjne.

Serwer # 2 zawiera dwa dodatkowe pliki ini:

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

php -i wyniki.

Serwer 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

Serwer # 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

Ciekawe jest to, że z jakiegoś powodu „Domyślna strefa czasowa” nie pasuje na serwerze # 2 podczas przeglądaniaphp -i przeciwphpinfo() na stronie internetowej.

ROZWIĄZANIE

Problem tkwił w CMS i jego wtyczkach. Podczas gdy serwer # 1 i # 2 miały te same pliki i wszystko, wydaje się, że wtyczki nie są ładowane w tej samej kolejności na każdym serwerze, co umożliwiło załadowanie ostatniej wtyczki w celu określenia strefy czasowej mojego skryptu.

Powódphp -i iphpinfo różni się, ponieważ po użyciudate_default_timezone_set(), wpływa na cophpinfo() wydrukuje.

Poprawka polegała na upewnieniu się, że jestem w strefie czasowej, w której muszę być za pośrednictwemdate_default_timezone_set(). Przyczyną, która nie zadziałała dla mnie, zanim opublikowałem to pytanie, było to, że zadeklarowałem to przed załadowaniem kilku wymaganych plików z CMS, które prawdopodobnie ustawiły tam strefę czasową.

questionAnswers(6)

yourAnswerToTheQuestion