PHP には時刻をフォーマットする関数が 2 つあります: date() と gmdate()。公式ドキュメントの説明は次のとおりです。
date -- ローカル時刻/日付をフォーマットします。
gmdate -- GMT/UTC 日付/時刻をフォーマットします。返されるのはグリニッジ標準時 (GMT) です。
たとえば、現在のタイムゾーンが +8 の場合、次のスクリプトを実行しているサーバーから返される時刻は次のようになります:
現在の時刻は 2009-01-04 12:15:27 であると想定されます
echo date( 'Y-m-d H:i:s', time()); 出力は次のとおりです: 2009-01-04 12:15:27
echo gmdate('Y-m-d H:i:s', time()); 2009-01-04 04:15:27
ただし、これは Linux+Apache で PHP を実行した場合の結果にすぎません。Windows で実行すると、2 つの関数は 2009-01-04 04:15:27 を返します。
そこで、互換性のある書き込み方法を提供し、gmdateを一律に使用し、現在のタイムゾーンを手動で設定する必要があります。書き込み方法は次のように改善されます:
echo gmdate('Y-m-d H:i:s', time() + 3600 * 8);
このように Linux+Apache であっても Windows であっても正しい結果が得られます もちろん、Web サイトが全世界向けである場合、Web サイトのユーザーは設定するだけで済みます。タイムゾーンを指定すると、プログラムはユーザーが設定したタイムゾーンに従って自動的に処理されます。データベース内の情報リリース時間は、current time() によって生成された時間と、中国で見られるリリース時間のみを保存します。 8 タイム ゾーンは: 2009-01-04 12:15:27、ヨーロッパ +2 タイム ゾーンです。ユーザーがこの情報を見たときのリリース時刻は: 2009-01-04 06:15:27 です。つまり、情報はすべて正しく対応します。転載する場合は出典を示してください: php の date 関数と gmdate 関数の違い
上記は php です date 関数と gmdate 関数の違いの詳細については、PHP の中国語 Web サイトを参照してください。 (www.php.cn)!