Laravelなどのフレームワークからセットするcreated_atやupdated_atカラムに正しい時刻がセットされている場合見落としがちなのがMySQLのタイムゾーン設定からセットされるcurrent_timestampである。
MySQLのタイムゾーンを確認
select current_timestamp;
-9時間の時刻が返ってきたらUTCとなっている。
日本時刻に設定
/etc/my.cnfに以下を追記
[mysqld]
default-time-zone = 'Asia/Tokyo'
docker-compose.ymlの場合は、dbセクションのcommandに追記すればOK
db:
command: --default-time-zone=Asia/Tokyo