数据库时间字段类型为 int 如何优雅的将格式化日期与时间戳相互转换?

公司项目 大部分日期字段使用int类型存储 目前自动维护时间戳已找到优雅的方式进行处理 代码如下:

  const CREATED_AT = 'add_time';
  const UPDATED_AT = 'editor_time';

  public function freshTimestamp()
  {
      return time();
  }

  public function fromDateTime($value) 
  {
      return $value;
  }

但是取出时想要以格式化后的样式输出应该中怎么办呢?
理想型为:date('Y-m-d H:i:s', $time)

还有一点就是项目中好多其他时间字段应该怎么优化的解决呢?目前采用的是 访问器和修改器 但是当时间字段很多的话每个时间字段都需要在模型中分别定义 访问器和修改器 这样感觉很麻烦 应该怎么办呢?
目前代码如下:

    public function setChuTimeAttribute($value)
    {
        $this->attributes['chu_time'] = strtotime($value);
    }
    public function getChuTimeAttribute($value)
    {
        $this->attributes['chu_time'] = date('Y-m-d H:i:s')
    }
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

已找到解决方案 都怪自己学艺不精
只需要 在 dates 数组中加入需要转换的字段就可以了

   protected $dates = ['chu_time', 'expire_time', 'chu_time', 'expire_time'];

不过入库的时候 需要自己 setxxxAttribute 修改一下

4年前 评论
讨论数量: 1

已找到解决方案 都怪自己学艺不精
只需要 在 dates 数组中加入需要转换的字段就可以了

   protected $dates = ['chu_time', 'expire_time', 'chu_time', 'expire_time'];

不过入库的时候 需要自己 setxxxAttribute 修改一下

4年前 评论

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