DatePeriod::createFromISO8601String

(PHP 8 >= 8.3.0)

DatePeriod::createFromISO8601String — CrĂ©e un nouvel objet DatePeriod Ă  partir d'une chaĂźne de caractĂšres ISO8601

Description

public static function DatePeriod::createFromISO8601String(string $specification, int $options = 0): static

Crée un nouvel objet DatePeriod à partir d'une chaßne de caractÚres ISO8601, tel que spécifié avec specification.

Liste de paramĂštres

specification

Un sous-ensemble de la spécification » ISO 8601 des intervalles récurrents.

Un exemple de spécification d'intervalle ISO 8601 acceptée est R5/2008-03-01T13:00:00Z/P1Y2M10DT2H30M, qui spécifie :

  • 5 itĂ©rations (R5/)
  • Commence Ă  2008-03-01T13:00:00Z.
  • Chaque itĂ©ration est un intervalle de 1 an, 2 mois, 10 jours, 2 heures et 30 minutes (/P1Y2M10DT2H30M).

Les exemples de certaines fonctionnalités de spécification d'intervalle ISO 8601 que PHP ne prend pas en charge sont :

  1. zéro occurrences (R0/)
  2. décalages horaires autres que UTC (Z), tels que +02:00.
options

Un champ de bits qui peut ĂȘtre utilisĂ© pour contrĂŽler certains comportements avec les dates de dĂ©but et de fin.

Avec DatePeriod::EXCLUDE_START_DATE on exclut la date de début de l'ensemble des dates récurrentes dans la période.

Avec DatePeriod::INCLUDE_END_DATE on inclut la date de fin dans l'ensemble des dates récurrentes dans la période.

Valeurs de retour

Crée un nouvel objet DatePeriod.

Les objets DatePeriod créés avec cette mĂ©thode peuvent ĂȘtre utilisĂ©s comme un itĂ©rateur pour gĂ©nĂ©rer un certain nombre d'objets DateTimeImmutable.

Erreurs / Exceptions

Lance une DateMalformedPeriodStringException quand la specification ne peut pas ĂȘtre analysĂ©e comme un intervalle ISO 8601 valide.

Exemples

Exemple #1 Exemple de DatePeriod::createFromISO8601String

<?php
$iso
= 'R4/2023-07-01T00:00:00Z/P7D';
$period = DatePeriod::createFromISO8601String($iso);

// En itérant sur l'objet DatePeriod, toutes les
// dates récurrentes dans cette période sont affichées.
foreach ($period as $date) {
echo
$date->format('Y-m-d'), "\n";
}

L'exemple ci-dessus va afficher :

2023-07-01
2023-07-08
2023-07-15
2023-07-22
2023-07-29
add a note

User Contributed Notes

There are no user contributed notes for this page.