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

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

数据库的时间

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

程序取出来的时间

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

时区也改了

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

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

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

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 8

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

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

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

打印查询数据

file 也是正确的,

返回数据 时间就错误

file

file

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

laravel7?

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

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

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

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

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

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

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

'timezone' => 'Asia/Shanghai',

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

以及模型对应的模型

  public $timestamps = true;
3年前 评论

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

3年前 评论
两说 3年前

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

3年前 评论

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