ホームページ >バックエンド開発 >PHPチュートリアル >PHP プログラム時間の 8 時間の差の解決策
PHP プログラム時間の 8 時間の差の解決策
外部ホストまたはローカルの自己構成インストールを使用する PHP 環境では、デフォルト設定は外部時間ですゾーンまたはシステムのデフォルトのタイムゾーン。 date 関数によって返される時刻値は、北京の現地時間と常に 8 時間異なります。
解決策は、PHP のタイムゾーン環境を正しく構成することです。
PHP のタイムゾーン環境は、特定の文字列のセットを通じて指定されます。最も簡単な方法は、php.ini ファイル内の date.timezone 行を見つけることです。デフォルトでは、この行はコメント化されており、前のセミコロンを削除して有効にします。中国本土の場合は、Etc/GMT-8 (またはアジア/上海、アジア/重慶、アジア/ウルムチ、中国) に設定できます。次に、Web サーバーを再起動します。
何らかの理由で php.ini を変更できない場合は、PHP プログラムの先頭で date_default_timezone_set() を使用して設定できます。たとえば、date 関数
date_default_timezone_set('Etc/GMT-8');
を使用する前にコードを実行できます。個人的には、date_default_timezone_set 関数を使用する方が良いと思います。第一に、この方法は汎用性が高く、第二に、Web サイトが世界中のユーザーを対象としている場合、この方法により各ユーザーが自分のタイムゾーンを設定できます。
最後に説明する必要があるのは、Etc/GMT の書き方です。中国本土では東部 8 ゾーンの時刻が使用され、通常は +8 と表記されますが、PHP では大きな変更があり、タイムゾーンが の場合は逆に Etc/GMT-8 と表記する必要があります。 West 2ndzone は、PHP では Etc/GMT+2 と書く必要があります。これは常識とは異なるため、特に注意する必要があります。