首先,我原來一直是寫PHP的,關於時間的處理一般都是用
Carbon
比如Laravel插入一張文章表,在資料庫沒建立索引的時候直接使用ORM的create
方法即可自動儲存updated_at
和created_at
欄位,這是因為Laravel的特性在處理
即便PHP原生程式碼對時間的操作也僅僅使用date('y-m-d H:i:s')
就能儲存到資料庫,而且一般來說不會有什麼需要處理的問題。
PHP果然是世界上最好的語言
在GoLang中一般時間操作都依賴於time
包
在開發過程中踩了一個PHP從來沒踩過的坑,下面是我記錄日誌的程式碼
_, _ = models.AddLoginLogs(&models.LoginLogs{
Username: admin.Username,
Type: 1,
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
})
這是Laravel遷移時生成的資料庫,直接拿來用了
在執行這段程式碼後發現儲存到資料庫的值和實際時間不對,然後我再執行一遍。。。。。。在試一下。。。。。。???
我的第一反應是需要設定時區,然後習慣性的開啟百度,得到了解決方式一
修改程式碼如下
loc, _:=time.LoadLocation("Asia/Shanghai")
_, _ = models.AddLoginLogs(&models.LoginLogs{
Username: admin.Username,
Type: 1,
CreatedAt: time.Now().In(loc),
UpdatedAt: time.Now().In(loc),
})
再次執行發現還是不對,各種百度仍然沒有解決,快放棄時無意間發現一篇文章:文章連結
仔細對比一下還真是差了8小時,恍然大悟,然後修改了Mysql連線池程式碼的確解決了
真是被我自己蠢哭了…
本作品採用《CC 協議》,轉載必須註明作者和本文連結