laravel 输出时间少了8小时

讲解

这次做项目的时候使用回了laravel8 版本 但是好巧不巧,

发现不是输出的格式有问题就是输出的时间不准确

问题解决方案

问题一

  • 输出的时间格式没有序列化;如图所示

image-20210508083638940

  • 解决方案

如果采用代码中格式输出的方式很繁琐以后每次写代码的时候我们都需要格式化

一下时间然后再输出,这个时候我们可以采用laravel提供的修改器统一的格式化输出时间

  • 在对应的模型中使用修改器
//不知道修改器如何使用的可以查阅官方文档   
use Carbon\Carbon;    
    public function getCreatedAtAttribute($value)
    {
        # 使用Carbon函数格式化输出时间
        return Carbon::parse($value)->toDateTimeString();
    }

    public function getUpdatedAtAttribute($value)
    {
        return Carbon::parse($value)->toDateTimeString();
    }

问题二

  • 统一json输出时间显示少了八个小时

image-20210508084248181

image-20210508084619793

  • 解决方法
  • 在对应的模型中使用方法
  protected function serializeDate(DateTimeInterface $date)
    {
        return $date->format(Carbon::now()->toDateTimeString());
    }

经过实验有一个最终的解决办法

直接在模型中定义

 # 只要这一条上述的全部删除即可 
protected function serializeDate(DateTimeInterface $date)
{
        return $date->format(Carbon::parse($date)->toDateTimeString());
}

讲解

这次做项目的时候使用回了laravel8 版本 但是好巧不巧,

发现不是输出的格式有问题就是输出的时间不准确

问题解决方案

问题一

  • 输出的时间格式没有序列化;如图所示

image-20210508083638940

  • 解决方案

如果采用代码中格式输出的方式很繁琐以后每次写代码的时候我们都需要格式化

一下时间然后再输出,这个时候我们可以采用laravel提供的修改器统一的格式化输出时间

  • 在对应的模型中使用修改器
//不知道修改器如何使用的可以查阅官方文档   
use Carbon\Carbon;    
    public function getCreatedAtAttribute($value)
    {
        # 使用Carbon函数格式化输出时间
        return Carbon::parse($value)->toDateTimeString();
    }

    public function getUpdatedAtAttribute($value)
    {
        return Carbon::parse($value)->toDateTimeString();
    }

问题二

  • 统一json输出时间显示少了八个小时

image-20210508084248181

image-20210508084619793

  • 解决方法
  • 在对应的模型中使用方法
  protected function serializeDate(DateTimeInterface $date)
    {
        return $date->format(Carbon::now()->toDateTimeString());
    }

经过实验有一个最终的解决办法

直接在模型中定义

 # 只要这一条上述的全部删除即可 
protected function serializeDate(DateTimeInterface $date)
{
        return $date->format(Carbon::parse($date)->toDateTimeString());
}
posted @ 2021-05-08 08:48  以己为镜  阅读(391)  评论(0编辑  收藏  举报