The DatePeriod class

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

Introduction

Represents a date period.

A date period allows iteration over a set of dates and times, recurring at regular intervals, over a given period.

Class synopsis

class DatePeriod implements IteratorAggregate {
/* Constants */
const int EXCLUDE_START_DATE = 1;
const int INCLUDE_END_DATE = 2;
/* Properties */
public int $recurrences;
public bool $include_end_date;
public bool $include_start_date;
/* Methods */
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)
public getRecurrences(): ?int
}

Predefined Constants

DatePeriod::EXCLUDE_START_DATE

Exclude start date, used in DatePeriod::__construct().

DatePeriod::INCLUDE_END_DATE

Include end date, used in DatePeriod::__construct().

Properties

recurrences

The number of recurrences, if the DatePeriod instance had been created by explicitly passing $recurrences. See also DatePeriod::getRecurrences().

include_end_date

Whether to include the end date in the set of recurring dates or not.

include_start_date

Whether to include the start date in the set of recurring dates or not.

start

The start date of the period.

current

During iteration this will contain the current date within the period.

end

The end date of the period.

interval

An ISO 8601 repeating interval specification.

Changelog

Version Description
8.2.0 The DatePeriod::INCLUDE_END_DATE constant and include_end_date property have been added.
8.0.0 DatePeriod implements IteratorAggregate now. Previously, Traversable was implemented instead.

Table of Contents

add a note

User Contributed Notes 1 note

up
20
mail at pascalhofmann dot de
5 years ago
When looping over a DatePeriod object, the returned objects always implement DateTimeInterface. The exact type returned depends on how the DatePeriod was created. If $start was a DateTimeImmutable, the objects returned will be of type DateTimeImmutable. If a DateTime object was used, the objects returned will be of type DateTime.
To Top