引言laravel
laravel引用了强大的Carbon日期时间处理库用于日期时间的操做, 而且在数据库的格式化中使用该库。本文就说一说程序中如何方便地使用 Carbon自定义格式。程序员
学习时间数据库
只要成功安装了laravel的项目,已经内置了标准的carbon库文件,好比说在写入数据库字段 created_at 时是这样的格式:编程
$item['created_at'] => "2020-08-28 19:18:44"
若是不作格式化,能够手动处理该日期时间,调用carbon的解析函数构造Carbon对象:微信
$createdAt = Carbon::parse($item['created_at']);
获取到Carbon对象以后,使用格式化函数进行字符串格式化操做。好比说有比较特殊的地区日期格式,就能够使用标准字符串定义:app
$suborder['payment_date'] = $createdAt->format('M d Y');
随着laravel的版本更新升级,在模型中逐步引入了更加丰富的特性,好比说 casts 特性, 能够支持对模型数据查询后进行指定的格式化操做,省却了很多繁琐的操做。函数
在模型中添加如下声明:学习
protected $casts = [
'created_at' => 'datetime:Y-m-d',
'updated_at' => 'datetime:Y-m-d',
'deleted_at' => 'datetime:Y-m-d h:i:s'
];
那么读写的数据都会使用Carbon代用该格式化字符串,对数据进行统一格式。spa
或者在laravel5中使用 $dates 属性,功效与上面的方式相同:.net
protected $dates = ['created_at', 'updated_at']
读取的时候,该字段都会返回一个null,或者Carbon对象。好比 User 模型中有下面的代码:
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
protected $dates = ['created_at', 'updated_at', 'deleted_at'];
}
那么在使用的时候,手动自定义日期时间格式可以使用链式操做:
$user->created_at->format('M d Y');
本质上是 User 模型实例化以后,会根据 $dates 内定义的格式,调用Carbon进行实例化该字段, 那么 $user->created_at 就会返回 Carbon 对象。接着使用Carbon对象的 format 方法,返回自定义的格式就能够了。
在模板中打印默认格式的日期时间字符串,能够这样使用:
{{$user->created_at->toFormattedDateString()}}
写在最后
本文介绍了laravel模型中的 $casts $dates 等特性用于日期时间的格式化,或者转换。本质上仍是Carbon对象的方法实现,掌握其灵活的特性方法才是关键。
Happy coding :-)
我是@程序员小助手,持续分享编程知识,欢迎关注。
本文分享自微信公众号 - 程序员小助手(mql45ea)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。