V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iPhonePKAndroid
V2EX  ›  PHP

Laravel 7 版本中所有模型 created_at 和 updated_at 的时间格式问题

  •  
  •   iPhonePKAndroid · 2020-05-03 11:32:35 +08:00 · 4921 次点击
    这是一个创建于 1657 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Laravel 7 的是

    2020-04-10T16:54:47.000000Z
    

    这样的格式,是标准的时间允许自动转换,但是我想要的是 config/app.php 里面 timezone 的时间, 直接转换为 Y:m:d H:i:s 那样,不知道在 AppServiceProvider.php 里面如何设置?

    需要默认输出时间为:

    2020-02-21 12:21:22
    

    这样

    9 条回复    2020-05-13 23:48:16 +08:00
    chotow
        1
    chotow  
       2020-05-03 12:20:57 +08:00   ❤️ 1
    在模型文件里配置:

    protected $casts = [
    'created_at' => 'datetime:Y-m-d H:i:s',
    'updated_at' => 'datetime:Y-m-d H:i:s',
    ];

    不知是否满足你的要求。
    wdd2007
        2
    wdd2007  
       2020-05-03 12:25:43 +08:00   ❤️ 1
    或者在 Model 里重写 serializeDate 方法:

    protected function serializeDate(\DateTimeInterface $date)
    {
    return $date->format('Y-m-d H:i:s');
    }
    vacker
        3
    vacker  
       2020-05-03 12:52:41 +08:00 via Android
    carbon 不香吗
    iPhonePKAndroid
        4
    iPhonePKAndroid  
    OP
       2020-05-03 13:14:59 +08:00
    @chotow
    @wdd2007 有没有统一配置的地方,默认格式还是 7 版本之前那样的
    sunny2580839896
        5
    sunny2580839896  
       2020-05-03 13:29:52 +08:00
    2020-04-10T16:54:47.000000Z 这种格式怎么转换成 date 类型???
    chotow
        6
    chotow  
       2020-05-03 13:36:08 +08:00   ❤️ 1
    这个变动来自于这个 PR:

    https://github.com/laravel/framework/pull/30715

    里边有说到为什么有这个变动。升级说明见这里:

    https://laravel.com/docs/7.x/upgrade#date-serialization

    想用回以前那个格式,重写模型的 serializeDate 方法即可,用 trait 或者自定义自己的 BaseModel 都行:

    protected function serializeDate(\DateTimeInterface $date) : string
    {
    return $date->format($this->getDateFormat());
    }
    stevenhawking
        7
    stevenhawking  
       2020-05-03 13:45:24 +08:00
    ```php
    Carbon::setToStringFormat('Y-m-d H:i:s');
    ```
    zachlhb
        8
    zachlhb  
       2020-05-03 15:59:27 +08:00 via Android
    model 设置时间转换啊
    ShareManT
        9
    ShareManT  
       2020-05-13 23:48:16 +08:00
    @stevenhawking 这个已经被 deprecated 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3667 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:20 · PVG 12:20 · LAX 20:20 · JFK 23:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.