DatePeriod::createFromISO8601String

(PHP 8 >= 8.3.0)

DatePeriod::createFromISO8601StringCrea un nuevo objeto DatePeriod a partir de un string ISO8601

Descripción

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

Crea un nuevo objeto DatePeriod a partir de un string ISO8601, tal como se especifica con specification.

Parámetros

specification

Un subconjunto de la especificación » ISO 8601 de intervalos recurrentes.

Un ejemplo de especificación de intervalo ISO 8601 aceptada es R5/2008-03-01T13:00:00Z/P1Y2M10DT2H30M, que especifica :

  • 5 iteraciones (R5/)
  • Comienza en 2008-03-01T13:00:00Z.
  • Cada iteración es un intervalo de 1 año, 2 meses, 10 días, 2 horas y 30 minutos (/P1Y2M10DT2H30M).

Los ejemplos de algunas funcionalidades de especificación de intervalo ISO 8601 que PHP no soporta son :

  1. cero ocurrencias (R0/)
  2. desplazamientos horarios distintos de UTC (Z), como +02:00.
options

Un campo de bits que puede ser utilizado para controlar ciertos comportamientos con las fechas de inicio y fin.

Con DatePeriod::EXCLUDE_START_DATE se excluye la fecha de inicio del conjunto de fechas recurrentes en el período.

Con DatePeriod::INCLUDE_END_DATE se incluye la fecha de fin en el conjunto de fechas recurrentes en el período.

Valores devueltos

Crea un nuevo objeto DatePeriod.

Los objetos DatePeriod creados con este método pueden ser utilizados como un iterador para generar un cierto número de objetos DateTimeImmutable.

Errores/Excepciones

Lanza una DateMalformedPeriodStringException cuando la specification no puede ser analizada como un intervalo ISO 8601 válido.

Ejemplos

Ejemplo #1 Ejemplo de DatePeriod::createFromISO8601String

<?php
$iso
= 'R4/2023-07-01T00:00:00Z/P7D';

$period = DatePeriod::createFromISO8601String($iso);

// Al iterar sobre el objeto DatePeriod, todas las
// fechas recurrentes en este período son mostradas.
foreach ($period as $date) {
echo
$date->format('Y-m-d'), "\n";
}
?>

El resultado del ejemplo sería:

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