PHP 8.4.1 Released!

DatePeriod::createFromISO8601String

(PHP 8 >= 8.3.0)

DatePeriod::createFromISO8601StringCré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

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top