Laravel 8 日期转换器

2021-07-19 11:44 更新

默认情况下,Eloquent 会将 created_atupdated_at 字段转换为 Carbon 实例, 它继承了 PHP 原生的 DateTime 类并提供了各种有用的方法。 你可以通过设置模型的 $dates 属性来添加其他日期属性:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * $dates 数组内的列转换为日期格式
     *
     * @var array
     */
    protected $dates = [
        'seen_at',
    ];
} 
    

技巧:你可以通过将模型的公有属性 $timestamps 设置为 false 来禁用默认的 created_atupdated_at 的时间戳。

当某个字段是日期格式时,你可以将值设置为一个 UNIX 时间戳,日期时间 (Y-m-d) 字符串或者 DateTime / Carbon 实例。日期值会被正确格式化并保存到你的数据库中:

$user = App\Models\User::find(1);

$user->deleted_at = now();

$user->save(); 

就像上面所说的,当获取到的属性包含在 $dates 属性中时,都会自动转换为 Carbon 实例,允许你在属性上使用任意的 Carbon 方法:

$user = App\Models\User::find(1);

return $user->deleted_at->getTimestamp(); 


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号