laravel ORM日期修改器用法
默认情况下,Eloquent将会转化created_at和updated_at列的值为Carbon实例,该类继承自PHP原生的Datetime类,并提供了各种有用的方法
你可以自定义哪些字段被自动调整修改,甚至可以通过重写模型中的$dates属性完全禁止调整:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model{
/**
* 应该被调整为日期的属性
*
* @var array
*/
protected $dates = ['created_at', 'updated_at', 'disabled_at'];
}
如果字段是日期格式时,你可以将其值设置为UNIX时间戳,日期字符串(Y-m-d),日期-时间字符串,Carbon/Carbon实例,日期的值将会自动以正确格式存储到数据库中:
$user = App\User::find(1);
$user->disabled_at = Carbon::now();
$user->save();
正如上面提到的,当获取被罗列在$dates数组中的属性时,它们会被自动转化为Carbon实例,允许你在属性上使用任何Carbon的方法:
$user = App\User::find(1);
return $user->disabled_at->getTimestamp();
www.judyhcm.com
如果你需要自定义时间戳格式,在模型中设置$dateFormat属性,该属性决定日期属性将以何种格式存储在数据库中、以及序列化为数组或JSON时的格式:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Flight extends Model{
/**
* 模型日期的存储格式
*
* @var string
*/
protected $dateFormat = 'U';
}