web-dev-qa-db-ja.com

laravel Query Builderの日付形式を「2016-03-12」から「12-Mar-2016」に変更する方法

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")

これに関する任意のガイドをお願いします。

6
GRESPL Nagpur

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');
3

これを使ってみてください:

$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();
10
cronLancer

生のクエリを使用する以外に方法がないので、私はこのように使用しています。それは私のために働いた。

->select("cust.*", DB::raw("DATE_FORMAT(cust.cust_dob, '%d-%b-%Y') as formatted_dob"))
1
ctrl f5

いつでもCarbonの->format('m/d/Y');を使用して形式を変更できます。

または、selectRawを使用してクエリを作成することもできます。

また、$dateFormatを使用したい日付形式に設定することで、日付ミューテーターを使用することもできます: https://laravel.com/docs/5.1/eloquent-mutators#date-mutators

0
Alexey Mezenin

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

0
devnull