DatePeriod::__construct
(PHP 5 >= 5.3.0)
DatePeriod::__construct — Crea un nuevo objeto DatePeriod
Descripción
public DatePeriod::__construct
( DateTimeInterface
$start
, DateInterval $interval
, int $recurrences
[, int $options
] )
public DatePeriod::__construct
( DateTimeInterface
$start
, DateInterval $interval
, DateTimeInterface $end
[, int $options
] )
public DatePeriod::__construct
( string
$isostr
[, int $options
] )Crea un nuevo objeto DatePeriod.
Parámetros
-
start -
La fecha de inicio del periodo.
-
interval -
El intervalo entre repeticiones dentro del periodo.
-
recurrences -
El número de repeticiones.
-
end -
La fecha final del periodo.
-
isostr -
Una especificación ISO 8601 del intervalo de repetición.
-
options -
Se puede establecer a
DatePeriod::EXCLUDE_START_DATEpara excluir la fecha de inicio del conjunto de fechas de repetición dentro del periodo.
Historial de cambios
| Versión | Descripción |
|---|---|
| 5.5.8 |
El tipo de end se cambió a
DateTimeImmutable.
Anteriormente era DateTime.
|
| 5.5.0 |
start se cambió a
DateTimeImmutable.
Anteriormente era DateTime.
|
Ejemplos
Ejemplo #1 Ejemplo de DatePeriod
<?php
$inicio = new DateTime('2012-07-01');
$intervalo = new DateInterval('P7D');
$fin = new DateTime('2012-07-31');
$repeticiones = 4;
$iso = 'R4/2012-07-01T00:00:00Z/P7D';
// Todos estos periodos son equivalentes.
$periodo = new DatePeriod($inicio, $intervalo, $repeticiones);
$periodo = new DatePeriod($inicio, $intervalo, $fin);
$periodo = new DatePeriod($iso);
// Al recorrer el objeto DatePeriod, se imprimen todas
// las fechas de repetición dentro del periodo.
foreach ($periodo as $fecha) {
echo $fecha->format('Y-m-d')."\n";
}
?>
El resultado del ejemplo sería:
2012-07-01 2012-07-08 2012-07-15 2012-07-22 2012-07-29
Ejemplo #2 Ejemplo de DatePeriod con DatePeriod::EXCLUDE_START_DATE
<?php
$inicio = new DateTime('2012-07-01');
$intervalo = new DateInterval('P7D');
$fin = new DateTime('2012-07-31');
$periodo = new DatePeriod($inicio, $intervalo, $fin,
DatePeriod::EXCLUDE_START_DATE);
// Al recorrer el objeto DatePeriod, se imprimen todas
// las fechas de repetición dentro del periodo.
// Observe que, en este caso, 2012-07-01 no se imprime.
foreach ($periodo as $fecha) {
echo $fecha->format('Y-m-d')."\n";
}
?>
El resultado del ejemplo sería:
2012-07-08 2012-07-15 2012-07-22 2012-07-29