「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PHP と MySQL でタイムゾーンを効果的に処理するにはどうすればよいですか?

PHP と MySQL でタイムゾーンを効果的に処理するにはどうすればよいですか?

2024 年 12 月 22 日に公開
ブラウズ:558

How to Handle Time Zones Effectively in PHP and MySQL?

PHP と MySQL のタイム ゾーン

タイム ゾーン システムを PHP アプリケーションに統合するのは難しい場合がありますが、異なるデータを処理する場合には不可欠です。タイムゾーン。ここでは、最も一般的な問題に対処し、実用的な解決策を提供するための包括的なガイドを示します。

MySQL に日時を保存する

  • DATETIME または TIMESTAMP を使用します: DATETIME はより高い精度を提供しますが、TIMESTAMP は秒単位の精度が低い場合に適しています。重要。
  • UTC で保存: すべての日時が一貫して処理されるように、MySQL 接続のタイムゾーンを UTC に設定します。

日時の変換

  • MySQL へ: PHP の日時を UTC に変換する前にDateTime::setTimezone('UTC').
  • From MySQL: MySQL 値から PHP DateTime オブジェクトを作成し、正しく解釈されるように UTC タイムゾーンを指定します。
  • ]

夏時間 (DST) の処理

MySQL は処理しませんネイティブの DST。 PHP の DateTimeZone クラスは、ユーザーの場所に基づいて DST を自動的に処理する名前付きタイム ゾーンを提供します。これは、ユーザー向けのタイムスタンプに使用する必要があります。

レガシー データ移行

存在する場合タイムゾーンを考慮せずにデータが挿入された場合は、MySQL の CONVERT_TZ 関数を使用して、選択および更新中にタイムスタンプを修正します。または、UTC に変換してからローカル タイム ゾーンに戻すことでタイムスタンプを更新します。

ユーザー設定のタイム ゾーンの選択

  • オファー名タイムゾーン: DateTimeZone::listIdentifiers() を使用して名前付き時刻のリストを取得しますゾーン.
  • データベースに保存: ユーザーが選択したタイムゾーンをキーまたは識別子としてデータベースに保存します。

コード例

注: データの不整合やユーザーの混乱を避けるために、タイムスタンプを一貫して保存および変換することが重要です。これらのガイドラインに従うことで、PHP および MySQL アプリケーションでタイム ゾーンを効果的に管理できます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3