PHPのdate()
関数を2つの異なるサーバーで使用すると、2つの異なる結果が得られますが、両方のサーバーが同じである必要があります。 php.iniデフォルトのタイムゾーンとdate.timezoneの比較
php.ini
ファイルをチェックし、次のようになります。私は、サーバー#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
と次のようになります。
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
「唯一の違いは、「デフォルトのタイムゾーン」の値です。
両方のサーバーの日付/時刻として現在の表示:
Server #1: 10/23/2012 09:40:39
Server #2: 10/23/2012 14:40:39
は、私は両方のサーバーがphp.ini
/etc
内に位置し、私はまた、タイムゾーンが上書きされる可能性があります任意の場所のため、両方のウェブディレクトリを検索使用していることが確認さ:
ただし、両方のファイルには同じ設定の同じファイルが含まれています。
"デフォルトのタイムゾーン"は5時間の違いの原因ですか?もしそうなら、私はそれをどのように修正するのですか?
UPDATE
ロードされたコンフィギュレーションファイル。
/etc/php.d/snmp.ini
/etc/php.d/apc.ini
PHP -i結果:
サーバー#2は、2つの追加のiniファイルが含まれています。
サーバ#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
サーバー#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
は、何らかの理由で、 "デフォルトのタイムゾーンは、" サーバ#2に一致していないということですウェブページ上でphp -i
とphpinfo()
の間でそれを見てください。
SOLUTION
問題は、CMSとそのプラグインとありました。サーバー#1と#2は同じファイルとすべてのものを持っていましたが、プラグインは各サーバー上で同じ順序でロードされていないように見え、最後のプラグインをロードしてスクリプトのタイムゾーンを決定できました。
php -i
とphpinfo
は、date_default_timezone_set()
を使用すると、phpinfo()
が印刷されるために異なるためです。
フィックスは、私がdate_default_timezone_set()
を経由する必要があったタイムゾーンにいることを保証していました。私がこの質問を投稿する前に私がうまくいかなかったのは、CMSからいくつかの必要なファイルを読み込む前にこれを宣言したためです。
両方のサーバーのシステム時間は同じですか? –
UCTを基準日として使用するようにすべてのサーバーを構成することをお勧めします。それはすべてをずっと予測可能にします。 – SDC
@AlexLunixはい、私はちょうどチェックし、それらは同じです: 'Tue Oct 23 10:03:57 CDT 2012' – NightHawk