数据存储的 timestamp 时间正确 但是 Laravel 取出来的时间慢的 8 小时

数据存储的timestamp时间正确 但是laravel 取出来的时间慢的8小时 而且是带有时区的时间 改了配置文件时区还是一样

数据库的时间

数据存储的timestamp时间正确 但是laravel 取出来的时间慢的8小时  而且是带有时区的时间  改了laravel 时区还是一样

程序取出来的时间

数据存储的timestamp时间正确 但是laravel 取出来的时间慢的8小时  而且是带有时区的时间  改了laravel 时区还是一样

时区也改了

数据存储的timestamp时间正确 但是laravel 取出来的时间慢的8小时  而且是带有时区的时间  改了laravel 时区还是一样

数据存储的timestamp时间正确 但是laravel 取出来的时间慢的8小时  而且是带有时区的时间  改了laravel 时区还是一样

缓存也清了。 但是就是不生效 不知道为什么 有大佬给小白ji

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 8

时区轻易不会改直接修改app.php吧

'timezone' => 'PRC'
4年前 评论
laravel176 (楼主) 4年前
摸鱻 (作者) 4年前
laravel176 (楼主) 4年前
摸鱻 (作者) 4年前
mark_wang 4年前

输出date是正常的时间,数据库的时间也是正确的 打印数据库数据也是正确的
file

打印查询数据

file 也是正确的,

返回数据 时间就错误

file

file

4年前 评论
laravel176 (作者) (楼主) 4年前

laravel7?

4年前 评论
laravel176 (楼主) 4年前
摸鱻 4年前
laravel176 (楼主) 4年前
两说 (作者) 4年前

感谢 感谢
在 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();
    }
4年前 评论

参考修改器,把这两个字段加到 datas 中,laravel 会自动帮你转换,如下:

protected $dates = [
        'create_at',
        'update_at',
    ];

话说,你为啥不用默认的 created_at 和 updated_at。

4年前 评论
自由与温暖是遥不可及的梦想

请在 config下面的app.php 预计 76行左右

'timezone' => 'Asia/Shanghai',

我一般是写死了的。但是看你这个 是在.env 配置的 请检查 .env 配置正常否。清楚缓存

以及模型对应的模型

  public $timestamps = true;
4年前 评论

修改文件:\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(); // 改成这行
}

4年前 评论
两说 4年前

写一个 BaseModel 或 trait,在其中写入 博客:数据存储的 timestamp 时间正确 但是 Laravel 取出来的时间慢的 8 小... 这里的代码,也可以写成 return $date->format($this->getDateFormat());
然后在 Model 中继承或使用。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!