php - datetime型を使用して時刻を保存する、タイムゾーンの問題を解決する方法
某草草
某草草 2017-05-16 13:08:23
0
7
768

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

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

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

某草草
某草草

全員に返信(7)
我想大声告诉你

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

いいねを押す +0
迷茫

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

いいねを押す +0
巴扎黑

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

いいねを押す +0
大家讲道理

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

いいねを押す +0
伊谢尔伦

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

いいねを押す +0
Peter_Zhu

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

いいねを押す +0
洪涛

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート