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.
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');
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();
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"))
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
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