zoukankan      html  css  js  c++  java
  • laravel carbon 格式化日期_3分钟短文:Laravel Carbon自定义日期时间格式

    引言

    laravel引用了强大的Carbon日期时间处理库用于日期时间的操作, 并且在数据库的格式化中使用该库。本文就说一说程序中如何方便地使用 Carbon自定义格式。

    08802a8d07e32b10fc3fb3ae12573fdf.png

    学习时间

    只要成功安装了laravel的项目,已经内置了标准的carbon库文件,比如说在写入数据库字段 created_at 时是这样的格式:

    $item['created_at'] => "2020-08-28 19:18:44"

    如果不做格式化,可以手动处理该日期时间,调用carbon的解析函数构造Carbon对象:

    $createdAt = Carbon::parse($item['created_at']);

    获取到Carbon对象之后,使用格式化函数进行字符串格式化操作。 比如说有比较特殊的地区日期格式,就可以使用标准字符串定义:

    $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代用该格式化字符串,对数据进行统一格式。

    或者在laravel5中使用 $dates 属性,功效与上面的方式相同:

    protected $dates = ['created_at', 'updated_at']

    读取的时候,该字段都会返回一个null,或者Carbon对象。比如 User 模型中有下面的代码:

    namespace App;use IlluminateDatabaseEloquentModel;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 :-)

    转载:https://blog.csdn.net/weixin_39930748/article/details/111697770

      protected $casts = [
            'create_time' => 'date:Y-m-d H:i:s',
            'update_time' => 'date:Y-m-d H:i:s'
        ];
     
  • 相关阅读:
    lvs持久连接及防火墙标记实现多端口绑定服务
    LVS负载均衡器DR模型的实现
    CentOS 6.5结合busybox完成自制Linux系统及远程登录和nginx安装测试
    CentOS 6.5下的lamp环境rsyslog+MySQL+loganalyzer实现日志集中分析管理
    centos中selinux功能及常用服务配置
    网站遭遇CC及DDOS攻击紧急处理方案
    centos6.5下系统编译定制iptables防火墙扩展layer7应用层访问控制功能及应用限制QQ2016上网
    centos 6.5内核编译步骤及配置详解
    centos系统初始化流程及实现系统裁剪
    iptables实现网络防火墙及地址转换
  • 原文地址:https://www.cnblogs.com/yehuisir/p/14354706.html
Copyright © 2011-2022 走看看