====== Carbon ====== Docs => http://carbon.nesbot.com/docs/ Certain champ par défaut comme **created_at**, **updated_at** et **deleted_at** retourne une instance Carbon avec Eloquent Si vous avez d'autres champs date dans votre table, il faut les rajouter dans son model protected $dates = [ 'deadline', 'closed_at' ]; Ainsi dans une vue, vous pouvez facilement formater votre date $issue->deadline->format('d/m/Y') $comment->created_at->diffForHumans() Le diffForHumans() est intéressant :) mais il faudra le mettre en français par défaut. Pour cela, j'ai modifié le fichier **app\Providers\AppServiceProvider.php** en considérant que votre **app.locale='fr'** et votre **app.timezone='Europe/Paris'** ===== Exemple ===== Transformer des secondes en heure minute seconde >>> \Carbon\Carbon::parse('0sec')->diff(\Carbon\Carbon::parse('490sec'))->format('%H:%I:%S') => "00:08:10" Récupérer une date au format français dd/mm/yyyy pour l'intégrer dans un model >>> \Carbon\Carbon::createFromFormat('d/m/Y','11/06/1990') => Carbon\Carbon {#688 +"date": "1990-06-11 16:52:04.000000", +"timezone_type": 3, +"timezone": "Europe/Paris", } exemple dans un controller $charge->date_debut = Carbon::createFromFormat('d/m/Y',$request->input('date_debut')); $charge->date_fin = Carbon::createFromFormat('d/m/Y',$request->input('date_fin')); Plein d'autre exemple dans la docs => http://carbon.nesbot.com/docs/ ===== Bug ===== Un gros bug de calcul entre les mois => https://github.com/briannesbitt/Carbon/issues/344 Pour calculer le nombre de mois entre 2 dates il va falloir utiliser une fonction annexe ... function diffInMonths(\DateTime $date1, \DateTime $date2) { $diff = $date1->diff($date2); $months = $diff->y * 12 + $diff->m + $diff->d / 30; return (int) round($months); }