date -- 現地時間/日付をフォーマットします
gmdate -- GMT/UTC 日付/時間をフォーマットし、グリニッジ標準時 (GMT) を返します。
たとえば、現在のタイムゾーンが +8 の場合、次のスクリプトを実行しているサーバーから返される時刻は次のようになります:
現在の時刻は 2007-03-14 12:15:27 であると想定されます
echo date(' Y-m-d H:i:s', time()); 出力は次のようになります: 2007-03-14 12:15:27
echo gmdate('Y-m-d H:i:s', time());出力は次のようになります: 2007- 03-14 04:15:27
ただし、これは Linux+Apache で PHP を実行した結果にすぎません。Windows で実行した場合、2 つの関数は次を返します: 2007-03-14 04:15 :27。
そこで、互換性のある書き込み方法を与え、gmdateを一律に使用し、現在のタイムゾーンを手動で設定する必要があります。書き込み方法は次のように改善されます:
echo gmdate('Y-m-d H:i:s', time() + 3600 * 8);
このようにすると、Linux+Apache であっても Windows であっても、正しい結果が得られます。ウェブサイトのユーザーはタイムゾーンを設定するだけで、プログラムはユーザーの設定に従って自動的にタイムゾーンを設定します。データベース内の情報リリース時刻は、current time() によって生成された時刻のみを保存します。この場合、中国 +8 タイム ゾーンでのリリース時刻は 2007-03-14 12:15:27 となり、ヨーロッパ +2 タイム ゾーンのユーザーにはこの情報のリリース時刻は 2007-03-14 06 となります。 15:27 なので、情報のすべての時刻が正しい時刻に一致します。