web-dev-qa-db-fra.com

Laravel 5 date et heure au format Carbon

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');
25
d3bug3r

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');
29
Milan Maharjan

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.

27
Sophy

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']);
6
fajarhac

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()}}

http://carbon.nesbot.com/docs/#api-formatting

4
Tushar

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',
];
4
Filipe Cruz
$suborder['payment_date'] = Carbon::parse($item['created_at'])->format('M d Y');
3
Sanith

Essayez ça:

$createdAt = Carbon::parse(date_format($item['created_at'],'d/m/Y H:i:s');
$createdAt= $createdAt->format('M d Y');
1
li bing zhao