データベースは日時(shí)フィールド タイプを使用して時(shí)刻を記録します。サーバーのタイム ゾーン、mysql タイム ゾーン、および PHP タイム ゾーンを設(shè)定するにはどうすればよいですか?
オプション 1.
すべてのサーバーは一律に UTC タイム ゾーンを使用します。PHP プログラムは UTC タイム ゾーンを使用し、データベースに書き込まれる日時(shí)型の時(shí)刻を取り出してローカル タイム ゾーンに変換します。 。
オプション 2.
すべてのサーバーのタイム ゾーンは任意に設(shè)定でき、プログラムのタイム ゾーンも任意に設(shè)定できます。ただし、タイム ストレージに関係するものはすべて、タイムスタンプの保存に int 型を使用します。
データベースを Asia/Shanghai
PHP のこのタイムゾーンに設(shè)定してみてはいかがでしょうか?
サーバーのタイムゾーンは統(tǒng)一する必要があります。通常、私はデータベースにタイムスタンプを記録します。検索するのが便利だからです。國(guó)境を越えた訪問(wèn)の場(chǎng)合。タイムスタンプのフォーマット時(shí)に対応する処理を?qū)g行するだけです。
ついに、なぜ時(shí)刻にタイムスタンプを付ける必要があるのか??がわかりました。それはタイムゾーンの問(wèn)題によるものであることがわかりました。ただし、Laravel の Carbon クラスはこの問(wèn)題を解決したようです。もちろん、タイムスタンプのパフォーマンスは最も強(qiáng)力で、特に検索の場(chǎng)合は、datetime よりも int 型の方が効率的です。
厳密に言えば、地球上のどこにいても、どの時(shí)點(diǎn)のタイムスタンプも同じです。たとえば、タイムスタンプ 1452783600 は、パリでは午後 4 時(shí)、サンフランシスコでは午前 7 時(shí)です。これは、オンラインおよびクライアント側(cè)の分散アプリケーションで時(shí)間情報(bào)を均一に追跡するのに役立ちます。
+8 時(shí)間。さらに、タイムスタンプにはタイムゾーンの概念がありません。タイムスタンプを使用して保存するのが最適です。
厳密に言えば、地球上のどこにいても、どの時(shí)點(diǎn)のタイムスタンプも同じです。
1. datetime
,php/mysql時(shí)區(qū)設(shè)置為UTC+08
2.使用int,直接存時(shí)間戳,顯示的時(shí)候再使用date
を使用してフォーマットします