検索

ホームページ  >  に質問  >  本文

php - datetime型を使用して時刻を保存する、タイムゾーンの問題を解決する方法

データベースは日時フィールド タイプを使用して時刻を記録します。サーバーのタイム ゾーン、mysql タイム ゾーン、および PHP タイム ゾーンを設定するにはどうすればよいですか?

オプション 1.
すべてのサーバーは一律に UTC タイム ゾーンを使用します。PHP プログラムは UTC タイム ゾーンを使用し、データベースに書き込まれる日時型の時刻を取り出してローカル タイム ゾーンに変換します。 。

オプション 2.
すべてのサーバーのタイム ゾーンは任意に設定でき、プログラムのタイム ゾーンも任意に設定できます。ただし、タイム ストレージに関係するものはすべて、タイムスタンプの保存に int 型を使用します。

某草草某草草2798日前807

全員に返信(7)返信します

  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:10:23

    データベースを Asia/ShanghaiPHP のこのタイムゾーンに設定してみてはいかがでしょうか?

    返事
    0
  • 迷茫

    迷茫2017-05-16 13:10:23

    サーバーのタイムゾーンは統一する必要があります。通常、私はデータベースにタイムスタンプを記録します。検索するのが便利だからです。国境を越えた訪問の場合。タイムスタンプのフォーマット時に対応する処理を実行するだけです。

    返事
    0
  • 巴扎黑

    巴扎黑2017-05-16 13:10:23

    タイムスタンプのみを推奨します

    返事
    0
  • 大家讲道理

    大家讲道理2017-05-16 13:10:23

    ついに、なぜ時刻にタイムスタンプを付ける必要があるのか​​がわかりました。それはタイムゾーンの問題によるものであることがわかりました。ただし、Laravel の Carbon クラスはこの問題を解決したようです。もちろん、タイムスタンプのパフォーマンスは最も強力で、特に検索の場合は、datetime よりも int 型の方が効率的です。

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 13:10:23

    厳密に言えば、地球上のどこにいても、どの時点のタイムスタンプも同じです。たとえば、タイムスタンプ 1452783600 は、パリでは午後 4 時、サンフランシスコでは午前 7 時です。これは、オンラインおよびクライアント側の分散アプリケーションで時間情報を均一に追跡するのに役立ちます。

    返事
    0
  • 天蓬老师

    天蓬老师2017-05-16 13:10:23

    +8 時間。さらに、タイムスタンプにはタイムゾーンの概念がありません。タイムスタンプを使用して保存するのが最適です。
    厳密に言えば、地球上のどこにいても、どの時点のタイムスタンプも同じです。

    返事
    0
  • PHP中文网

    PHP中文网2017-05-16 13:10:23

    1. datetime,php/mysql时区设置为UTC+08
    2.使用int,直接存时间戳,显示的时候再使用dateを使用してフォーマットします

    返事
    0
  • キャンセル返事