Laravel

Gestion des dates et des heures

Par défaut, Laravel utilise la librairie Carbon pour gérer les dates et les heures

Pour l'utiliser, il faut mettre au début du fichier

1
use Carbon\Carbon;

Il est possible de régler la timezone qu'utilise Laravel dans le fichier config/app.php

1
'timezone' => 'UTC',

On peut remplacer UTC par une timezone supportée par PHP

Quelques exemples

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Pour avoir la date UTC au format 'Y-m-d H:i:s'
Carbon::now()->format('Y-m-d H:i:s');
 
// Date avec la timezone de Toronto
Carbon::now('America/Toronto');
 
$dt = Carbon::parse('2012-10-5 23:26:11.123789');
 
$dt->year;       // int(2012)
$dt->month;      // int(10)
$dt->day;        // int(5)
$dt->hour;       // int(23)
$dt->minute;     // int(26)
$dt->second;     // int(11)
$dt->micro;      // int(123789)

diffForHumans()

La fonction diffForHuman() permet d'afficher une différence entre deux dates dans un format lisible par les humains. Par exemple: “il y a trois jours”

1
2
// $date contient la date d'écriture d'un article par exemple
Carbon::parse($date)->locale('fr')->diffForHumans(Carbon::now());