数据库时间字段类型为 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')
    }
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
最佳答案

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

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

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

5年前 评论
讨论数量: 1

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

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

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

5年前 评论

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