229 of 410 menu

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
byenru