(PHP 5 >= 5.3.0, PHP 7)
DatePeriod::__construct — Cria um novo objeto DatePeriod
$start
, DateInterval $interval
, int $recurrences
[, int $options
] )$start
, DateInterval $interval
, DateTimeInterface $end
[, int $options
] )$isostr
[, int $options
] )Cria um novo objeto DatePeriod.
startA data inicial do período.
intervalA recorrência de intervalos entre os períodos.
recurrencesNúmero de recorrências.
endA data final do período.
isostrUma especificação de repetição de intervalos ISO 8601.
options
Pode ser configurado com DatePeriod::EXCLUDE_START_DATE para
excluir a data inicial do conjunto de recorrências dentro do
período.
| Versão | Descrição |
|---|---|
| 5.5.8 |
O tipo de end foi modificado para
DateTimeImmutable.
Anteriormente era DateTime.
|
| 5.5.0 |
start foi modificado para
DateTimeImmutable.
Anteriormente era DateTime.
|
Exemplo #1 Exemplos de DatePeriod
<?php
$start = new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');
$recurrences = 4;
$iso = 'R4/2012-07-01T00:00:00Z/P7D';
// All of these periods are equivalent.
$period = new DatePeriod($start, $interval, $recurrences);
$period = new DatePeriod($start, $interval, $end);
$period = new DatePeriod($iso);
// By iterating over the DatePeriod object, all of the
// recurring dates within that period are printed.
foreach ($period as $date) {
echo $date->format('Y-m-d')."\n";
}
?>
O exemplo acima irá imprimir:
2012-07-01 2012-07-08 2012-07-15 2012-07-22 2012-07-29
Exemplo #2 Exemplo de DatePeriod com DatePeriod::EXCLUDE_START_DATE
<?php
$start = new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');
$period = new DatePeriod($start, $interval, $end,
DatePeriod::EXCLUDE_START_DATE);
// By iterating over the DatePeriod object, all of the
// recurring dates within that period are printed.
// Note that, in this case, 2012-07-01 is not printed.
foreach ($period as $date) {
echo $date->format('Y-m-d')."\n";
}
?>
O exemplo acima irá imprimir:
2012-07-08 2012-07-15 2012-07-22 2012-07-29