(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
.
specification
Um 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
.
options
Um 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.
Dispara 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