PHP および MySQL アプリケーションでタイムゾーンを効果的に管理するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-09 02:17:02
オリジナル
253 人が閲覧しました

How Can I Effectively Manage Time Zones in PHP and MySQL Applications?

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 バージョンでは廃止されません。

レガシー データの処理

タイム ゾーンなしで保存されたレガシー データの処理用:

  • MySQL 接続のタイムゾーンを UTC に更新します。
  • データベースから選択するときにタイムスタンプが UTC に変換されるようにする CONVERT_TZ 関数。

結論

PHP と MySQL のタイムゾーンを理解するには、データ ストレージに細心の注意が必要です、検索、変換。ここで説明するガイドラインに従うことで、PHP/MySQL アプリケーションでユーザー固有のタイムゾーンを正確に処理できるようになります。

以上がPHP および MySQL アプリケーションでタイムゾーンを効果的に管理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート