84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
資料庫有使用 datetime 欄位類型來記錄時間,伺服器時區、mysql時區、PHP時區問題該如何設定?
方案一、所有伺服器全部統一使用UTC時區,PHP程式使用UTC時區,寫入到資料庫的 datetime 類型時間就是 UTC,拿出來再轉當地時區。
方案二、所有伺服器的時區隨意設置,程式時區隨意設置,但是所有涉及時間儲存的都使用 int 型別存時間戳記。
為啥你不設定你的資料庫,php都是Asia/Shanghai這個時區呢。
Asia/Shanghai
伺服器的時區一定要統一。通常我都是在資料庫裡記錄時間戳記。因為我覺得搜尋起來方便。跨國訪問的話。格式化時間戳記的時候在進行對應的處理就好了。
只建議使用時間戳
終於知道為什麼時間必須用時間戳了,原來是因為時區問題。但是laravel中carbon類別好像把這個問題解決了,可以隨意轉換時間格式,當然時間戳性能最強悍,尤其是搜尋的時候,int類型效率比datetime要高很多。
嚴格來說,不管你處在地球上的哪個地方,任意時間點的時間戳記都是一樣的。例如1452783600這個時間戳,在巴黎是下午4點在舊金山就是早上7點。這點有利於線上和客戶端分散式應用統一追蹤時間資訊。
+8小時,另外所有時間格式最好是用時間戳保存,時間戳記不會出現時區問題,時間戳沒有時區的概念。 嚴格來說,不管你處在地球上的哪個地方,任意時間點的時間戳記都是一樣的。
1.使用datetime,php/mysql时区设置为UTC+082.使用int,直接存时间戳,显示的时候再使用date格式化一下
datetime
UTC+08
date
為啥你不設定你的資料庫,php都是
Asia/Shanghai
這個時區呢。伺服器的時區一定要統一。通常我都是在資料庫裡記錄時間戳記。因為我覺得搜尋起來方便。跨國訪問的話。格式化時間戳記的時候在進行對應的處理就好了。
只建議使用時間戳
終於知道為什麼時間必須用時間戳了,原來是因為時區問題。但是laravel中carbon類別好像把這個問題解決了,可以隨意轉換時間格式,當然時間戳性能最強悍,尤其是搜尋的時候,int類型效率比datetime要高很多。
嚴格來說,不管你處在地球上的哪個地方,任意時間點的時間戳記都是一樣的。例如1452783600這個時間戳,在巴黎是下午4點在舊金山就是早上7點。這點有利於線上和客戶端分散式應用統一追蹤時間資訊。
+8小時,另外所有時間格式最好是用時間戳保存,時間戳記不會出現時區問題,時間戳沒有時區的概念。
嚴格來說,不管你處在地球上的哪個地方,任意時間點的時間戳記都是一樣的。
1.使用
datetime
,php/mysql时区设置为UTC+08
2.使用int,直接存时间戳,显示的时候再使用
date
格式化一下