ホームページ >バックエンド開発 >PHPチュートリアル >PHP で発生するタイムゾーンの問題の解決策

PHP で発生するタイムゾーンの問題の解決策

WBOY
WBOYオリジナル
2016-07-25 08:44:36889ブラウズ
解決策、PHP

最近、PHP を学習しているときに、オンラインで検索したところ、PHP の書式設定されたタイムスタンプが北京時間より 8 時間遅いことがわかりました。解決策は次のとおりです。

1. 永久的な変更


php.ini ファイルの data.timezone = PRC を変更します。これは中国時間です。 Apache サービスを再起動すると有効になります。


2. 一時的な変更


フォーマットされた入力時刻を使用する前に、ini_set('date.timezone','Asia/Shanghai'); を追加します。 または、 data_default_timezone_set('PRC');//date_default_timezone_set() 関数は、スクリプト内のすべての日付/時刻関数に使用されるデフォルトのタイムゾーンを設定します。


他の友達が遭遇した問題を見てください


以前は、echo date("Y-m-d H:i:s", time()) によって返される時刻が常に実際の時刻と一致しないという問題がありました。今日、その理由と解決策をついにオンラインで見つけました。以下のように共有します:


もう 1 つ、以下の方法に従って php.ini を変更しても date.timezone 行が見つからない場合は、もちろん何もできません (笑)。そうでない場合は、自分で追加してください。そして、あなたは自分で十分な食べ物と衣服を持っています。 date.timezone = "PRC" を追加すると、問題は解決しました。満足です


php5.1.0以降、date.timezoneオプションがphp.iniに追加されましたが、デフォルトではオフになっています


つまり、表示される時刻は(どのようなphpコマンドが使用されたとしても)グリニッジ標準時であり、私たちの時間(北京時間)とはちょうど8時間異なります。通常の時間を復元するには、以下の3つの方法があります。


1. 最も簡単な方法は、php5.1 以降のバージョンを使用しないことです


2. これを使用する必要があり、php.ini を変更できない場合は、time に関する初期化ステートメントの先頭に date_default_timezone_set (XXX);

を追加する必要があります。


3. 変更できるのは php.ini だけです。 php.ini を開いて date.timezone を検索し、先頭のセミコロンを削除します

= その後に XXX を追加し、http サービス (apache2 や iis など) を再起動します



XXX に関して、中国本土で利用可能な値は次のとおりです: アジア/重慶、アジア/上海、アジア/ウルムチ (順に、重慶、上海、ウルムチ)


香港と台湾で利用可能: アジア/マカオ、アジア/香港、アジア/台北 (マカオ、香港、台北の順)


そしてシンガポール: アジア/シンガポール


外国人は北京を懐かしんでいるようです


その他の利用可能な値は次のとおりです: Etc/GMT-8、シンガポール、香港、中国


中華人民共和国とは何ですか? PRC は中華人民共和国です -_-


——————————————————————————————————————


解決策: ページのヘッダーで date_default_timezone_set() を使用して、デフォルトのタイムゾーンを北京時間に設定します date_default_timezone_set('PRC');

echo date('Y-m-d H:i:s'); 時刻はサーバーの現在時刻と同じです おめでとうございます



——————————–


date_default_timezone_set

(PHP 5 >= 5.1.0RC1)

date_default_timezone_set — スクリプト内のすべての日時関数に使用されるデフォルトのタイムゾーン仕様を設定します
bool date_default_timezone_set (string timezone_identifier)
date_default_timezone_set() は、すべての日時関数に使用されるデフォルトのタイムゾーンを設定します。
注: PHP 5.1.0 (このバージョンでは日付と時刻の関数が書き直されています) 以降、タイムゾーンが不正な場合、日付と時刻の関数を呼び出すたびに E_NOTICE レベルのエラー メッセージが生成されます。

以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。