(PHP 8 >= 8.3.0)
DatePeriod::createFromISO8601String — Cria um novo objeto DatePeriod a partir de uma string ISO8601
   Cria um novo objeto DatePeriod a partir de uma string ISO8601, como especificado no parâmetro
   specification.
  
specificationUm subconjunto da » especificação ISO 8601 de intervalos repetitivos.
      Um exemplo de uma especificação de intervalo ISO 8601 aceitável é
      R5/2008-03-01T13:00:00Z/P1Y2M10DT2H30M, que
      especifica:
     
R5/)
       
      2008-03-01T13:00:00Z.
       
      /P1Y2M10DT2H30M).
       
      Exemplo de recursos de especificação de intervalos ISO 8601 que o PHP não suporta são:
R0/)
       
      Z), como em +02:00.
       
      optionsUm campo de bits que pode ser utilizado para controlar certos comportamentos com datas iniciais e finais.
      Com DatePeriod::EXCLUDE_START_DATE, pode-se
      excluir a data inicial do conjunto de datas recorrentes dentro do
      período.
     
      Com DatePeriod::INCLUDE_END_DATE, pode-se
      incluir a data final no conjunto de datas recorrentes dentro do
      período.
     
Retorna um novo objeto DatePeriod.
Objetos DatePeriod criados com este método podem ser usador como um iterador para gerar um número de objetos DateTimeImmutable.
   Lanã uma DateMalformedPeriodStringException quando
   o parâmetro specification não puder ser analisado como um período ISO 8601
   válido.
  
Exemplo #1 Exemplo de DatePeriod::createFromISO8601String
<?php
$iso = 'R4/2023-07-01T00:00:00Z/P7D';
$period = DatePeriod::createFromISO8601String($iso);
// Iterando pelo objeto DatePeriod, todas as
// datas recorrentes dentro do período são exibidas.
foreach ($period as $date) {
    echo $date->format('Y-m-d'), "\n";
}O exemplo acima produzirá:
2023-07-01 2023-07-08 2023-07-15 2023-07-22 2023-07-29
