web-dev-qa-db-fra.com

Comment changer le format de date dans laravel Query Builder de "2016-03-12" à "12-Mar-2016"

Comment changer le format de date dans laravel de "2016-03-12" à "12-Mar-2016"

$results = DB::table('customers as cust')
        ->where('cust.id',$id)
        ->select("cust.*","cust.cust_dob as dob")
        ->first();

Dois-je utiliser laravel requête brute.

J'ai essayé ça,

 ->select("cust.*","DATE_FORMAT(cust.cust_dob, '%d-%M-%Y') as formatted_dob")

Tout guide à ce sujet s'il vous plaît.

6
GRESPL Nagpur

Laravel utilise Carbon pour datetime afin que vous puissiez l'écrire comme le code suivant:

$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
Zamrony P. Juhara

Essayez d'utiliser ceci:

$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

Comme il n'y a pas d'autre moyen que d'utiliser la requête brute, j'utilise comme ça. Ça a marché pour moi.

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

Vous pouvez toujours utiliser la fonction ->format('m/d/Y'); de Carbon pour changer de format.

Ou vous pouvez simplement utiliser selectRaw pour créer vos requêtes.

Vous pouvez également essayer d'utiliser des mutateurs de date en définissant $dateFormat format à ce jour que vous souhaitez utiliser: https://laravel.com/docs/5.1/eloquent-mutators#date-mutators

0
Alexey Mezenin

Laravel donne l'occasion de définir des accesseurs/mutateurs. Que vous pouvez utiliser dans ce cas plutôt que de le faire via des requêtes.

j'ajouterais une méthode dans la classe de modèle client

public function getCustDobAttribute($value) {
    return //Format the value Which represent the value in database;
}

Exemple: Imaginez que vous voulez récupérer le nom du client, vous voulez l'obtenir en tant que capital du premier affréteur et le reste petit.

public function getFirstNameAttribute($value)
{
    return ucfirst($value);
}

Référence:

https://laravel.com/docs/5.1/eloquent-mutators#accessors-and-mutators

0
devnull