时区轻易不会改直接修改app.php吧
'timezone' => 'PRC'
感谢 感谢
在 Eloquent 模型上使用 toArray 或 toJson 方法时,Laravel 7 将使用新的日期序列化格式。为了格式化日期以进行序列化,Laravel 将会使用 Carbon 的 toJSON 方法,该方法将生成与 ISO-8601 兼容的日期,包括时区信息及小数秒。此外,该更改提供了更好的支持,并与客户端日期解析库集成。
/**
* 为数组 / JSON 序列化准备日期。
*
* @param \DateTimeInterface $date
* @return string
*/
protected function serializeDate(\DateTimeInterface $date)
{
return Carbon::instance($date)->toDateTimeString();
}
参考修改器,把这两个字段加到 datas 中,laravel 会自动帮你转换,如下:
protected $dates = [
'create_at',
'update_at',
];
话说,你为啥不用默认的 created_at 和 updated_at。
请在 config
下面的app.php
预计 76
行左右
'timezone' => 'Asia/Shanghai',
我一般是写死了的。但是看你这个 是在.env 配置的 请检查 .env 配置正常否。清楚缓存
以及模型对应的模型
public $timestamps = true;
修改文件:\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Concerns\HasAttributes.php
protected function serializeDate(DateTimeInterface $date)
{
// return Carbon::instance($date)->toJSON(); // 去掉这行
return Carbon::instance($date)->toDateTimeString(); // 改成这行
}
写一个 BaseModel 或 trait,在其中写入 博客:数据存储的 timestamp 时间正确 但是 Laravel 取出来的时间慢的 8 小... 这里的代码,也可以写成 return $date->format($this->getDateFormat());
。
然后在 Model 中继承或使用。
推荐文章: