时间戳与数据库(laravel)不一致



我有一些数据。在数据库mysql 8上。Created_at字段看起来像2022-06-25 07:44:43.

但是当我获取数据时,它返回

"created_at": "2022-06-25T05:44:43.000000Z"

我已经设置了我的时区从config/app.php法国欧洲为/但时间似乎还晚了两个小时。

在读取过程中,哪种机制会改变该时间?为什么我不能从数据库中得到相同的数据?

下面的代码解决了我的问题,但我只是好奇这个问题。

public function getCreatedAtAttribute($value) {
return Carbon::createFromTimestamp(strtotime($value))
->timezone(env("APP_TIMEZONE"))
->toDateTimeString();
}

数据库服务器的时区设置错误。

如果你在linux下运行

$ sudo timedatectl set-timezone Europe/Paris

或者您需要的时区

最新更新