The DatePeriod Class
The DatePeriod
class creates a sequence of dates between start and end points with a specific interval.
Accepts parameters: start date as a DateTime
object, interval as a DateInterval
object, number of recurrences or end date.
Allows iterating over all dates in the specified range.
Syntax
new DatePeriod(DateTime $start, DateInterval $interval, int $recurrences);
new DatePeriod(DateTime $start, DateInterval $interval, DateTime $end);
Example
Let's create a period of 5
dates with an interval of 1
day:
<?php
$start = new DateTime('2025-01-01');
$interval = new DateInterval('P1D');
$period = new DatePeriod($start, $interval, 4);
foreach ($period as $date) {
echo $date->format('Y-m-d') . '<br>';
}
?>
Code execution result:
'2025-01-01'
'2025-01-02'
'2025-01-03'
'2025-01-04'
'2025-01-05'
Example
Let's create a period between two dates with an interval of 1
week:
<?php
$start = new DateTime('2025-01-01');
$end = new DateTime('2025-02-01');
$interval = new DateInterval('P1W');
$period = new DatePeriod($start, $interval, $end);
foreach ($period as $date) {
echo $date->format('Y-m-d') . '<br>';
}
?>
Code execution result:
'2025-01-01'
'2025-01-08'
'2025-01-15'
'2025-01-22'
'2025-01-29'
See Also
-
class
DateTime
,
for working with date and time -
class
DateInterval
,
for working with date intervals