从Laravel7开始,使用模型查询数据,created_at、updated_at等日期类型的数据,查询出来的结果都会慢8个小时
不多不少,刚好8个小时。。。于是想到了时区转换问题
最后,查看Laravel7官方文档https://learnku.com/docs/laravel/7.x/upgrade/7445#date-serialization,找到问题所在:
实际开发过程中,可以创建一个特征库FormatDate,或者在BaseModel中重写父类方法,这里 使用的是特征库FormatDate,在需要使用的模型中,直接use Formate即可。
<?php
namespace App\Models\Traits;
use DateTimeInterface;
trait FormatDate
{
/**
* 为数组 / JSON 序列化准备日期。
*
* @param \DateTimeInterface $date
* @return string
*/
protected function serializeDate(DateTimeInterface $date)
{
return $date->format($this->dateFormat ?: 'Y-m-d H:i:s');
}
}