====== 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);
}