Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
php:date_heures [2020/03/30 13:35] marclebrun créée |
php:date_heures [2020/05/30 14:27] (Version actuelle) marclebrun [Conversion de chaîne en DateTime] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Dates / Heures ====== | ====== Dates / Heures ====== | ||
- | ====== Conversion de DateTime en chaîne ====== | + | ===== Initialisation de DateTime ===== |
+ | Doc: [[https://www.php.net/manual/fr/datetime.formats.relative.php]] | ||
+ | Date du jour : | ||
+ | <code php>$d = new \DateTime('today');</code> | ||
- | ===== Conversion de chaîne en DateTime ===== | + | 1er jour du mois en cours : |
+ | <code php>$d = new \DateTime('first day of this month');</code> | ||
+ | |||
+ | 1er jour du mois dernier : | ||
+ | <code php>$d = new \DateTime('first day of last month');</code> | ||
+ | |||
+ | ===== Jour de fin d'un mois ===== | ||
+ | |||
+ | <code php> | ||
+ | $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')}."; | ||
+ | </code> | ||
+ | |||
+ | Résultat : | ||
+ | |||
+ | <code> | ||
+ | La fin de mois pour 2/2020 est 29/02/2020. | ||
+ | </code> | ||
+ | |||
+ | ====== 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]] | Doc : [[https://www.php.net/manual/fr/datetime.createfromformat.php|DateTime::createFromFormat]] | ||
Ligne 16: | Ligne 49: | ||
</code> | </code> | ||
+ | Avec un format ISO : | ||
+ | |||
+ | <code php> | ||
+ | $dateStr = "2020-04-06T00:00:00+02:00"; | ||
+ | $dateObj = \DateTime::createFromFormat("Y-m-d\TH:i:sT", $dateStr); | ||
+ | </code> | ||
+ | |||
+ | Logs d'Apache avec les mois en lettres : | ||
+ | |||
+ | <code php> | ||
+ | $dateStr = "24/May/2020:11:16:07 +0200"; | ||
+ | $dateObj = \DateTime::createFromFormat("d/M/Y:H:i:s T", $dateStr); | ||
+ | </code> |