ホームページ > バックエンド開発 > PHPチュートリアル > PHP の date と gmdate の違いとデフォルトのタイムゾーン設定_PHP チュートリアル

PHP の date と gmdate の違いとデフォルトのタイムゾーン設定_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:29:53
オリジナル
804 人が閲覧しました

1. date と gmdate の違いは何ですか?

PHP の時刻関数には date() と gmdate() という 2 つの書式設定関数があります。公式ドキュメントの説明は次のとおりです。

コードをコピーします コードは次のとおりです:
date() #— フォーマット 現地の時刻/日付をフォーマットします
gmdate() #— GMT/UTC の日付/時刻をフォーマットし、グリニッジ標準時 (GMT) を返します。

まず例を見てみましょう。現在のタイムゾーンが +8 の場合、次のスクリプトを実行するサーバーから返される時刻は次のようになります:
現在の時刻は 2013-03-14 12:15:27 であると想定されます。
コードをコピー コードは次のとおりです:
echo date('Y-m-d H:i:s'); #date('Y-m-d H:i:s' time()); と同等、出力は: 2007-03-14 12 :15:27
echo gmdate('Y-m-d H:i:s'); #gmdate('Y-m-d H:i:s' time()) となります。 -14 04:15:27

ただし、これは Linux+Apache で PHP を実行した場合の結果にすぎません。Windows で実行すると、2 つの関数は 2013-03-14 04:15:27 を返します。
そこで、互換性のある書き込みメソッドを提供し、gmdate を一律に使用し、現在のタイムゾーンを手動で設定する必要があります。書き込みメソッドは次のように改善されます:
コードをコピーします コードは次のとおりです:
echo gmdate ('Y-m-d H:i:s' , time() + 3600 * 8);

この方法では、Linux+Apache または Windows のどちらでも正しい結果が得られます。もちろん、この方法で記述することには別の利点もあります。ウェブサイトが全世界向けの場合、ウェブサイトのユーザーはタイムゾーンを設定するだけで、プログラムはユーザーが設定したタイムゾーンに基づいて時刻を自動的に計算し、データベースに生成された時刻のみを保存します。現在の時刻() の場合、中国 +8 タイム ゾーンでのリリース時刻は 2007-03-14 12:15:27 となり、ヨーロッパ +2 タイム ゾーンのユーザーには、この情報のリリース時刻が 2007-03-14 12:15:27 であることがわかります。 :2007-03-14 06:15:27, 情報のすべての時間が正確になるようにします。

2. PHP のデフォルトのタイムゾーンを変更すると影響を受けますか?

各地域には独自の現地時間があります。インターネットや無線通信では、時間変換の問題が特に顕著です。地球全体は 24 のタイムゾーンに分割されており、それぞれに独自の現地時間が存在します。国際的な無線通信やネットワーク通信の場面では、統一するために世界標準時(UTC)と呼ばれる世界標準時が定められた統一時刻が使用されます。 UTC はもともと、英国ロンドンの現地時間と同じグリニッジ標準時 (GMT、グリニッジ標準時) とも呼ばれていました。

PHP のデフォルトのタイムゾーン設定は UTC 時間であり、北京はタイムゾーンの東 8 区に位置し、UTC より 8 時間進んでいます。そのため、PHP の time() などの関数を使用して現在時刻を取得すると、取得される時刻は常に間違っており、北京時間とは 8 時間異なっています。北京時間を正しく表示したい場合は、デフォルトのタイムゾーン設定を変更する必要があります。これは次の 2 つの方法で行うことができます。

独立したサーバーを使用していて、構成ファイルを変更する権限がある場合は、php.ini の date.timezone 属性を変更することでタイムゾーンを設定できます。この属性の値を「Asia/Shang」、「Asia/Chongqing」、「Etc/GMT-8」、または PRC などのいずれかに設定すると、PHP スクリプトで取得される現在時刻が北京時間になります。 PHP 設定ファイルを次のように変更します:

コードをコピーします コードは次のとおりです:
date.timezone = Etc/GMT-8
//設定ファイルのデフォルトのタイムゾーンを East 8 に設定します (北京時間)

共有サーバー/仮想ホスティング スペースを使用していて、構成ファイル php.ini を変更する権限がなく、PHP バージョンが 5.1.0 以降の場合は、date_default_timezone_set() 関数を呼び出してタイム ゾーンを設定することもできます。時刻を出力する前に。この関数は、パラメータとしてタイム ゾーン識別子を提供する必要があります。これは、構成ファイルの date.timezone 属性の値と同じです。この関数の使用方法は次のとおりです:

コードをコピーします コードは次のとおりです:
date_default_timezone_set('PRC'); i:s', time());
//現在時刻出力は北京時間です

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/769237.html技術記事 1. date と gmdate の違いは何ですか? PHP の時刻関数には、date() と gmdate() という 2 つの書式設定関数があります。公式ドキュメントの説明は次のとおりです。 コードをコピーします。 コードは次のとおりです。 date() #— Grid...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート