# The DatePeriod class

(PHP 5 >= 5.3.0, PHP 7)

## 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

DatePeriod implements Traversable {
/* Constants */
const integer EXCLUDE_START_DATE = 1 ;
/* Properties */
public integer $recurrences ;
public boolean $include_start_date ;
public DateTimeInterface $start ;
public DateTimeInterface $current ;
public DateTimeInterface $end ;
public DateInterval $interval ;
/* Methods */
public __construct ( DateTimeInterface `$start` , DateInterval `$interval` , int `$recurrences` [, int `$options` ] )
public __construct ( DateTimeInterface `$start` , DateInterval `$interval` , DateTimeInterface `$end` [, int `$options` ] )
public __construct ( string `$isostr` [, int `$options` ] )
public getDateInterval ( void ) : DateInterval
public getEndDate ( void ) : DateTimeInterface
getRecurrences ( void ) : int
public getStartDate ( void ) : DateTimeInterface
}

## Predefined Constants

`DatePeriod::EXCLUDE_START_DATE`

  Exclude start 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_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
--- | ---
5.3.27, 5.4.17 | The public properties recurrences, include_start_date, start, current, end and interval have been exposed.

## Table of Contents

- DatePeriod::__construct — Creates a new DatePeriod object
- DatePeriod::getDateInterval — Gets the interval
- DatePeriod::getEndDate — Gets the end date
- DatePeriod::getRecurrences — Gets the number of recurrences
- DatePeriod::getStartDate — Gets the start date