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');
$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.
Doc : DateTime::format
Doc : 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);