# 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 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` vous excluez la date de début de l'ensemble des dates récurrentes dans la période.

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

### Valeurs de retour

Créer 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