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());
//現在時刻出力は北京時間です
http://www.bkjia.com/PHPjc/769237.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/769237.html技術記事 1. date と gmdate の違いは何ですか? PHP の時刻関数には、date() と gmdate() という 2 つの書式設定関数があります。公式ドキュメントの説明は次のとおりです。 コードをコピーします。 コードは次のとおりです。 date() #— Grid...