A classe DatePeriod

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introdução

Representa um período entre datas.

O período entre datas permite a interação entre um conjunto de datas e horários recorrentes a intervalos regulares, durante um determinado período.

Resumo da classe

classDatePeriodimplementsIteratorAggregate {
publicreadonly?DateTimeInterface$start;
publicreadonly?DateTimeInterface$end;
publicreadonly?DateInterval$interval;
publicreadonlyint$recurrences;
publicreadonlybool$include_end_date;
public__construct(
    DateTimeInterface$start,
    DateInterval$interval,
    int$recurrences,
    int$options = 0
)
public__construct(
    DateTimeInterface$start,
    DateInterval$interval,
    DateTimeInterface$end,
    int$options = 0
)
public__construct(string$isostr, int$options = 0)
publicstaticcreateFromISO8601String(string$specification, int$options = 0): static
}

Constantes pré-definidas

DatePeriod::EXCLUDE_START_DATE

Exclui a data inicial, utilizada em DatePeriod::__construct().

DatePeriod::INCLUDE_END_DATE

Inclui a data final, utilizado em DatePeriod::__construct().

Propriedades

recurrences

O número mínimo de instâncias retornadas pelo iterator.

O número de recorrências que foi informado explicitamente no parâmetro recurrences no construtor da instância de DatePeriod, de forma que essa propriedade contém este valor, mais um se a data inicial não foi excluída através de DatePeriod::EXCLUDE_START_DATE, mais um se a data final foi incluída através de DatePeriod::INCLUDE_END_DATE.

Se o número de recorrências não foi informado explicitamente, então esta propriedade conte o número mínimo de recorrências a retornar. Isto pode ser 0, mais um se a data inicial não foi excluída através de DatePeriod::EXCLUDE_START_DATE, mais um se a data finnal não foi incluída através de DatePeriod::INCLUDE_END_DATE.

<?php
$start
= new DateTime('2018-12-31 00:00:00');
$end = new DateTime('2021-12-31 00:00:00');
$interval = new DateInterval('P1M');
$recurrences = 5;

// recorrências informadas no construtor
$period = new DatePeriod($start, $interval, $recurrences, DatePeriod::EXCLUDE_START_DATE);
echo
$period->recurrences, "\n";

$period = new DatePeriod($start, $interval, $recurrences);
echo
$period->recurrences, "\n";

$period = new DatePeriod($start, $interval, $recurrences, DatePeriod::INCLUDE_END_DATE);
echo
$period->recurrences, "\n";

// recorrências não informadas no construtor
$period = new DatePeriod($start, $interval, $end);
echo
$period->recurrences, "\n";

$period = new DatePeriod($start, $interval, $end, DatePeriod::EXCLUDE_START_DATE);
echo
$period->recurrences, "\n";
?>

O exemplo acima produzirá:


5
6
7
1
0

Veja também DatePeriod::getRecurrences().

include_end_date

Se inclui a data final no conjunto de datas a retornar.

include_start_date

Se inclui a data inicial no conjunto de datas a retornar.

start

A data inicial do período.

current

Contém a data atual dentro do período.

end

Data final do período.

interval

Uma especificação ISO 8601 do intervalo repetidor.

Registro de Alterações

VersãoDescrição
8.2.0 A constante DatePeriod::INCLUDE_END_DATE e a propriedade include_end_date foram adicionados.
8.0.0DatePeriod agora implementa IteratorAggregate. Anteriormente implementava Traversable.

Índice

To Top