PHPで間違ったタイムゾーンを解決する方法

青灯夜游
リリース: 2023-03-17 21:20:01
オリジナル
3852 人が閲覧しました

解決策: 1. php.ini ファイルで、「date.timezone = "タイム ゾーン識別子"」を設定してタイム ゾーンを変換します。 2. PHP ファイルで、「ini_set('date.timezone」を使用します。 ', 'タイムゾーン識別子');" ステートメントを使用してタイムゾーンを変換します。 3. PHP ファイルの "date_default_timezone_set("タイムゾーン識別子");" ステートメントを使用してタイムゾーンを変換します。

PHPで間違ったタイムゾーンを解決する方法

このチュートリアルの動作環境: Windows7 システム、PHP8 バージョン、DELL G3 コンピューター

時間は人生において不可欠です、PHP においても同じですが true の場合、何かを記録したりブラウザに表示したりするために時間を保存する必要がある場合があります。

php のタイムゾーンが正しくない理由

PHP では、日時関数を使用して日付と時刻を取得します。日付と時刻の関数は、サーバーの時刻設定によって異なります。サーバーの時刻設定は、デフォルトでグリニッジ標準時 (ゼロ タイム ゾーンの時刻) に設定されています。時刻が特定のタイム ゾーンに特に設定されていない場合、関連する PHP 関数を通じて取得される時刻は、北京時間より 8 時間短い、ゼロタイムゾーン時間になります。

PHP5.0 の data() 関数の書き換えにより、現在の日付と時刻関数はシステム時間より 8 時間短くなっています。 PHP 言語のデフォルト設定は標準グリニッジ標準時 (つまり、ゼロ タイム ゾーンが使用されます) であるため、現在の現地時刻を取得するには現地時刻と異なる場合があるため、PHP 言語のタイム ゾーン設定を変更する必要があります。

PHP でタイムゾーンを設定する方法

PHP でタイムゾーンを設定するには 3 つの方法がありますので、以下でそれぞれ紹介します。

1) 設定ファイルに設定します

PHP の設定ファイルは、PHP のインストールディレクトリにある php.ini ファイルです。これを見つけて開きます。次に、ファイル内で date.timezone を検索し、

;date.timezone = の前にある ; に置き換えます。 PHP の / は同じ機能を持ち、コメントを意味します。ここでは、この ; を削除し、以下に示すように、この文の = の後に対応するタイム ゾーン識別子を入力する必要があります。 #

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Shangha
ログイン後にコピー

一般的に使用されるタイム ゾーン識別子とその意味:

  • アジア/上海 —— 上海

  • アジア/重慶 ——重慶

  • アジア/ウルムチ —— ウルムチ

  • #アジア/香港 —— 香港
  • ##アジア/マカオ — — マカオ
  • アジア/台北 — 台北
  • アジア/シンガポール — シンガポール
  • # # PRC - 中国のタイムゾーン

  • # ヒント: 中国にお住まいの場合は、タイムゾーンを「アジア/上海または中国」に設定できます。サーバーを再起動することを忘れないでください。設定が成功したら!

2) ini_set() 関数を使用してタイムゾーンを設定します。

PHP の ini_set() 関数は、指定された構成オプションの値を設定できます。この構成オプションは、スクリプトの実行中は新しい値が維持され、スクリプトの終了時に復元されます。関数の構文形式は次のとおりです。

ini_set($varname, $newvalue)
ログイン後にコピー
ここで、$varname は変更する構成オプション、$newvalue は構成オプションの新しい値です。

ヒント: ini_set() 関数は、すべての構成オプションを変更できるわけではありません。変更可能な構成は、「https://www.php.net/manual/zh/ini.list.php」にアクセスして確認できます。 「オプション。

[例] ini_set()関数を使用してタイムゾーンを設定します。

<?php
header("Content-type:text/html;charset=utf-8");
ini_set(&#39;date.timezone&#39;, &#39;GMT&#39;);
echo &#39;当前的格林尼治时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time()).&#39;<br>&#39;;
ini_set(&#39;date.timezone&#39;, &#39;Asia/Urumqi&#39;);
echo &#39;乌鲁木齐的当前时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time()).&#39;<br>&#39;;
ini_set(&#39;date.timezone&#39;, &#39;Asia/Shanghai&#39;);
echo &#39;上海的当前时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time());
?>
ログイン後にコピー

実行結果は次のとおりです:

3) date_default_timezone_set() 関数を使用してタイムゾーンを設定しますPHPで間違ったタイムゾーンを解決する方法

PHP の date_default_timezone_set() 関数は、スクリプト内のすべての時刻および日付関数のデフォルトのタイム ゾーンを設定できます。構文形式は次のとおりです:

date_default_timezone_set($timezone_identifier)
ログイン後にコピー
パラメータ $timezone_identifier はタイム ゾーンの識別子です、UTC (グリニッジ標準時) やヨーロッパ/リスボン (ポルトガル) など)。

PHP5.1.0 (このバージョンでは日付と時刻関数が書き直されました) 以降、タイムゾーンが不正な場合、日付と時刻関数を呼び出すたびに E_NOTICE レベルのエラー メッセージが生成されます。システム設定または TZ 環境変数も E_STRICT レベル情報を生成します。

[例] date_default_timezone_set()関数を使用してタイムゾーンを設定します。

<?php
header("Content-type:text/html;charset=utf-8");
date_default_timezone_set(&#39;Asia/Urumqi&#39;);
echo &#39;乌鲁木齐的当前时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time()).&#39;<br>&#39;;
date_default_timezone_set(&#39;Europe/Lisbon&#39;);
echo &#39;葡萄牙的当前时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time()).&#39;<br>&#39;;
date_default_timezone_set(&#39;Asia/Shanghai&#39;);
echo &#39;上海的当前时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time());
?>
ログイン後にコピー

実行結果は次のとおりです:

推奨される学習: 「

PHP ビデオ チュートリアル PHPで間違ったタイムゾーンを解決する方法

以上がPHPで間違ったタイムゾーンを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート