3分鐘短文:Laravel Carbon自定義日期時間格式

引言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源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索