資料庫有使用 datetime 欄位類型來記錄時間,伺服器時區、mysql時區、PHP時區問題該如何設定?
方案一、
所有伺服器全部統一使用UTC時區,PHP程式使用UTC時區,寫入到資料庫的 datetime 類型時間就是 UTC,拿出來再轉當地時區。
方案二、
所有伺服器的時區隨意設置,程式時區隨意設置,但是所有涉及時間儲存的都使用 int 型別存時間戳記。
大家讲道理2017-05-16 13:10:23
終於知道為什麼時間必須用時間戳了,原來是因為時區問題。但是laravel中carbon類別好像把這個問題解決了,可以隨意轉換時間格式,當然時間戳性能最強悍,尤其是搜尋的時候,int類型效率比datetime要高很多。
伊谢尔伦2017-05-16 13:10:23
嚴格來說,不管你處在地球上的哪個地方,任意時間點的時間戳記都是一樣的。例如1452783600這個時間戳,在巴黎是下午4點在舊金山就是早上7點。這點有利於線上和客戶端分散式應用統一追蹤時間資訊。
天蓬老师2017-05-16 13:10:23
+8小時,另外所有時間格式最好是用時間戳保存,時間戳記不會出現時區問題,時間戳沒有時區的概念。
嚴格來說,不管你處在地球上的哪個地方,任意時間點的時間戳記都是一樣的。