MySQLのNOW()とLaravelのnow()について

前提知識

・NOW()(MySQLの関数)
・セッションのtime_zone
・「セッションのTZで返る」→ session tz=UTC なのでそりゃUTC

・now()(Laravelのヘルパ / Carbon)
・config(‘app.timezone’)
・Laravel が app.timezone(=Asia/Tokyo) を使うのでそりゃJST

Code

updateOrInsert は更新時も値を適用するので、created_at はCOALESCEで初回値を保持(now() だけだと再アクセスで上書きされる)updated_at は毎回更新でOK。NOW()(UTC) と now()(JST) は基本混在させない。JSTで保存したいなら、書き込みにDB側時刻関数であるNOW()/CURRENT_TIMESTAMP/useCurrent()を使わないのが良いので、タイムゾーンのズレには注意すること。

参考

Was this helpful?

0 / 0

コメントを残す