Outils pour utilisateurs

Outils du site


symfony_4:php:les_dates

Manipulation de date (objet Datetime)

Création d'une date :

$date = new \Datetime();

$date = new \Datetime('now')

$date = new \Datetime('2012-12-25');

$date = new \Datetime('2012-12-25 05:59:59');

Duplication d'une date :

Attention car une simple égalité entre deux dates ne fera qu'une copie similaire à un passage d'adresse à une fonction en C : C'est à dire qu'en cas de modification de la première, la seconde sera aussi modifiée. Vous ne crée ainsi qu'une sorte de raccourci vers la 1ere date :

$dateA = new \Datetime('2020-01-05');
$dateB = $dateA;

$dateA->sub( new \DateInterval('P4D'); //retrait de 4 jours

$dateA->format('d/m/y'); // 01/01/2020
$dateB->format('d/m/y'); // 01/01/2020 car dateB ne sera toujours qu'un duplicata de dateA

//de la même manière si on réalise une opération sur dateB, dateA sera affecté :
$dateB->add( new \DateInterval('P10D'); //ajout de 10 jours
$dateB->format('d/m/y'); // 10/01/2020
$dateA->format('d/m/y'); // 10/01/2020

Ainsi, pour réaliser une vrai copie d'une date, il faut donc faire appel à l'outil clone afin de clone l'objet Datetime :

$dateA = new \Datetime('2020-01-05');
$dateB = clone $dateA;

$dateA->sub( new \DateInterval('P4D'); //retrait de 4 jours

$dateA->format('d/m/y'); // 01/01/2020
$dateB->format('d/m/y'); // 05/01/2020 car dateB est distinct de dateA

//de la même manière si on réalise une opération sur dateB, dateA ne sera pas affecté :
$dateB->add( new \DateInterval('P10D'); //ajout de 10 jours
$dateB->format('d/m/y'); // 15/01/2020
$dateA->format('d/m/y'); // 01/01/2020

Comparaison :

La comparaison est très simple et s'utilise comme s'il s'agissait de nombre standard :

if ($dateA < $dateB){...}
if ($dateA > $dateB){...}
if ($dateA <= $dateB){...}
if ($dateA >= $dateB){...}

Remarque : Attention à l'égalité parfaite car cela signifie que tout doit être égale : La date, l'heure et les millisecondes associées !

symfony_4/php/les_dates.txt · Dernière modification: 2020/04/09 13:24 de admin