J'ai un tableau qui retourne l'heure suivante:
$item['created_at'] => "2015-10-28 19:18:44"
Comment changer la date en M d Y
format au format Laravel en utilisant Carbon?
Actuellement, il retourne avec une erreur
$suborder['payment_date'] = $item['created_at']->format('M d Y');
Commencez par analyser le champ created_at en tant qu’objet Carbon.
$createdAt = Carbon::parse($item['created_at']);
Ensuite, vous pouvez utiliser
$suborder['payment_date'] = $createdAt->format('M d Y');
C'est facile pour Laravel 5 dans votre modèle, ajoutez une propriété protected $dates = ['created_at', 'cached_at']
. Voir les détails ici https://laravel.com/docs/5.2/eloquent-mutators#date -mutators
Ex:
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* The attributes that should be mutated to dates.
*
* @var array
*/
protected $dates = ['created_at', 'updated_at', 'deleted_at'];
}
Vous pouvez formater la date comme ceci $user->created_at->format('M d Y');
ou tout autre format supporté par PHP.
Si vous utilisez un modèle éloquent (en regardant votre code, je pense que vous l'êtes), vous n'avez pas besoin de le convertir en tableau. Utilisez-le simplement comme objet. Becaus elike Thomas Kim a dit, par défaut c'est une instance de carbone
Donc ça devrait être
$suborder['payment_date'] = $item->created_at->format('Y-m-d')
Mais si ce n'est pas le cas, vous devez le convertir en objet Carbon, comme le dit Milan Maharjan.
$createdAt = Carbon::parse($item['created_at']);
Les horodatages Laravel 5 sont des instances de la classe Carbon. Vous pouvez donc appeler directement la méthode de formatage de chaîne de Carbon sur vos horodatages. Quelque chose comme ça dans votre fichier de vue.
{{$task->created_at->toFormattedDateString()}}
Déclarer dans le modèle:
class ModelName extends Model
{
protected $casts = [
'created_at' => 'datetime:d/m/Y', // Change your format
'updated_at' => 'datetime:d/m/Y',
];
$suborder['payment_date'] = Carbon::parse($item['created_at'])->format('M d Y');
Essayez ça:
$createdAt = Carbon::parse(date_format($item['created_at'],'d/m/Y H:i:s');
$createdAt= $createdAt->format('M d Y');