laravelの日付形式を「2016-03-12」から「12-Mar-2016」に変更する方法
$results = DB::table('customers as cust')
->where('cust.id',$id)
->select("cust.*","cust.cust_dob as dob")
->first();
laravel rawクエリを使用する必要があります。
私はこれを試しました、
->select("cust.*","DATE_FORMAT(cust.cust_dob, '%d-%M-%Y') as formatted_dob")
これに関する任意のガイドをお願いします。
Laravelは Carbon を日時に使用するため、次のコードのように記述できます。
$results = DB::table('customers as cust')
->where('cust.id',$id)
->select("cust.*","cust.cust_dob as dob")
->first();
echo $results->dob->format('d-m-Y');
これを使ってみてください:
$results = DB::table('customers as cust')
->where('cust.id',$id)
->select(DB::raw('DATE_FORMAT(cust.cust_dob, "%d-%b-%Y") as formatted_dob')
->first();
生のクエリを使用する以外に方法がないので、私はこのように使用しています。それは私のために働いた。
->select("cust.*", DB::raw("DATE_FORMAT(cust.cust_dob, '%d-%b-%Y') as formatted_dob"))
いつでもCarbonの->format('m/d/Y');
を使用して形式を変更できます。
または、selectRaw
を使用してクエリを作成することもできます。
また、$dateFormat
を使用したい日付形式に設定することで、日付ミューテーターを使用することもできます: https://laravel.com/docs/5.1/eloquent-mutators#date-mutators
Laravelは、アクセサー/ミューテーターを定義する機会を提供します。この場合、クエリを介して実行するのではなく、どちらを使用できますか。
customerモデルクラスにメソッドを追加します
public function getCustDobAttribute($value) {
return //Format the value Which represent the value in database;
}
例:顧客名を取得したいと想像してください。
public function getFirstNameAttribute($value)
{
return ucfirst($value);
}
参考:
https://laravel.com/docs/5.1/eloquent-mutators#accessors-and-mutators