====== Dates / Heures ====== ===== Initialisation de DateTime ===== Doc: [[https://www.php.net/manual/fr/datetime.formats.relative.php]] Date du jour : $d = new \DateTime('today'); 1er jour du mois en cours : $d = new \DateTime('first day of this month'); 1er jour du mois dernier : $d = new \DateTime('first day of last month'); ===== Jour de fin d'un mois ===== $mois = 2; $annee = 2020; $d = new \DateTime(); $d->setDate($annee, $mois, 1); // Depuis le 1er du mois spécifié $d->add(new \DateInterval('P1M')); // Avancer d'1 mois $d->sub(new \DateInterval('P1D')); // Reculer d'1 jour echo "La fin de mois pour {$month}/{$year} est {$d->format('d/m/Y')}."; Résultat : La fin de mois pour 2/2020 est 29/02/2020. ====== Conversion de DateTime en chaîne ====== Doc : [[https://www.php.net/manual/fr/datetime.format.php|DateTime::format]] ====== Conversion de chaîne en DateTime ====== Doc : [[https://www.php.net/manual/fr/datetime.createfromformat.php|DateTime::createFromFormat]] Créer un objet DateTime depuis une chaîne, en spécifiant le format à utiliser : $dateStr = " 22/04/1971 "; $dateObj = \DateTime::createFromFormat('!d/m/Y', trim($dateStr)); Avec un format ISO : $dateStr = "2020-04-06T00:00:00+02:00"; $dateObj = \DateTime::createFromFormat("Y-m-d\TH:i:sT", $dateStr); Logs d'Apache avec les mois en lettres : $dateStr = "24/May/2020:11:16:07 +0200"; $dateObj = \DateTime::createFromFormat("d/M/Y:H:i:s T", $dateStr);