Laravel 8 日期转换器
默认情况下,Eloquent 会将 created_at 和 updated_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_at和updated_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();