PHP と MySQL のタイム ゾーン
タイム ゾーン システムの統合は複雑になる可能性があり、PHP と MySQL のタイム ゾーンを理解するのは困難な場合があります。このトピックを効率的に進めるための包括的なガイドを次に示します。
データベースへのタイム ゾーンの保存
MySQL に日付を保存する場合は、TIMESTAMP ではなく常に DATETIME を使用してください。 DATETIME を使用すると、より粒度が高く、柔軟性が高まります。すべての PHP タイムスタンプを MySQL に保存する前に UTC に変換します。次のようなコードを使用できます:
$dateUTC = new DateTime('2023-03-08 14:30:00', new DateTimeZone('UTC'));
データベースからタイムゾーンを取得
次のコードを使用して MySQL から日時を取得できます:
$dateRetrieved = new DateTime($row['datetime_column'], new DateTimeZone('UTC'));
変換時間ゾーン
取得した日時を表示上のユーザーのローカル タイムゾーンに変換します。これは、以下を使用して実行できます。
$localTime = $dateRetrieved->setTimeZone(new DateTimeZone('America/Los_Angeles'));
夏時間 (DST) の自動調整
強力な機能を実現するには、DateTime と DateTimeZone を使用します。最新の PHP バージョンには、ユーザーが選択した場所に基づいて DST を自動的に調整するために使用できる DateTimeZone クラスが含まれています。
// This will be PDT right now, UTC-7 $la = new DateTimeZone('America/Los_Angeles'); $nowish->setTimeZone($la);
非推奨のタイム ゾーンの回避
使用Etc/GMT... タイムゾーンの代わりに名前付きタイムゾーン。名前付きタイム ゾーンが推奨されており、将来の PHP バージョンでは廃止されません。
レガシー データの処理
タイム ゾーンなしで保存されたレガシー データの処理用:
結論
PHP と MySQL のタイムゾーンを理解するには、データ ストレージに細心の注意が必要です、検索、変換。ここで説明するガイドラインに従うことで、PHP/MySQL アプリケーションでユーザー固有のタイムゾーンを正確に処理できるようになります。
以上がPHP および MySQL アプリケーションでタイムゾーンを効果的に管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。