PHP DatePeriod Class Methods
| Function Name | Function Description |
|---|---|
| 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 |
PHP DatePeriod::__construct() Method
What does DatePeriod::__construct() do?
The PHP DatePeriod:: method creates a new DatePeriod object.__construct()
PHP DatePeriod::__construct() Syntax
PHP DatePeriod::__construct() Parameters
start— The start date of the period.interval— The interval between recurrences within the period.recurrences— The number of recurrences.end— The end date of the period.isostr— An ISO 8601 repeating interval specification.options— Can be set to DatePeriod::EXCLUDE_START_DATE to exclude the start date from the set of recurring dates within the period.
PHP DatePeriod::__construct() Working Examples
1. DatePeriod example
<?php
$start = new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');
$recurrences = 4;
$iso = 'R4/2012-07-01T00:00:00Z/P7D';
// All of these periods are equivalent.
$period = new DatePeriod($start, $interval, $recurrences);
$period = new DatePeriod($start, $interval, $end);
$period = new DatePeriod($iso);
// By iterating over the DatePeriod object, all of the
// recurring dates within that period are printed.
foreach ($period as $date) {
echo $date->format('Y-m-d')."\n";
}
?>Output of the above code:
2012-07-01
2012-07-08
2012-07-15
2012-07-22
2012-07-292. DatePeriod example with DatePeriod::EXCLUDE_START_DATE
<?php
$start = new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');
$period = new DatePeriod($start, $interval, $end,
DatePeriod::EXCLUDE_START_DATE);
// By iterating over the DatePeriod object, all of the
// recurring dates within that period are printed.
// Note that, in this case, 2012-07-01 is not printed.
foreach ($period as $date) {
echo $date->format('Y-m-d')."\n";
}
?>Output of the above code:
2012-07-08
2012-07-15
2012-07-22
2012-07-29Changelog for PHP DatePeriod::__construct() Method
5.5.8 — end type changed to DateTimeInterface. Previously, DateTime.
5.5.0 — start type changed to DateTimeInterface. Previously, DateTime.
Additional Tips from Fellow Developers
Contributed By: simon dot kohlmeyer
I found two things useful to know that aren't covered here.
1. endDate is excluded:
<?php
$i = new DateInterval('P1D');
$d1 = new Datetime();
$d2 = clone $d1; $d2->add($i);
foreach(new DatePeriod($d1, $i, $d2) as $d) {
echo $d->format('Y-m-d H:i:s') . "\n";
}
?>
Will output:
2010-11-03 12:39:53
(Another one because I got it wrong at first)
2. For the first form, recurrences really means REcurrences, not occurences.
<?php
$i = new DateInterval('P1D');
$d = new Datetime();
foreach(new DatePeriod($d, $i, 1) as $d) {
echo $d->format('Y-m-d H:i:s') . "\n";
}
?>
Will output:
2010-11-03 12:41:05
2010-11-04 12:41:05Contributed By: lars
When you add the time 23:59:59 to the end DateTime object something like the following then the end date will be included in the period:
<?php
$date_start = new DateTime('2012-03-12');
$date_end = new DateTime('2012-03-22 23:59:59');
$interval = '+2 days';
$date_interval = DateInterval::createFromDateString($interval);
$period = new DatePeriod($date_start, $date_interval, $date_end, DatePeriod::EXCLUDE_START_DATE);
foreach($period as $dt) {
echo $dt->format('d/m');
}
?>
OUTPUT:
14/03
16/03
18/03
20/03
22/03PHP DatePeriod::getDateInterval() Method
What does DatePeriod::getDateInterval() do?
The PHP DatePeriod:: method gets the interval .getDateInterval()
PHP DatePeriod::getDateInterval() Syntax
public DatePeriod::getDateInterval ( void ) : DateIntervalPHP DatePeriod::getDateInterval() Parameters
This method does not accept any parameters.
PHP DatePeriod::getDateInterval() Return Value
The PHP DatePeriod::getDateInterval() method returns a DateInterval object
PHP DatePeriod::getDateInterval() Working Examples
1. DatePeriod::getDateInterval() example
<?php
$period = new DatePeriod('R7/2016-05-16T00:00:00Z/P1D');
$interval = $period->getDateInterval();
echo $interval->format('%d day');
?>Output of the above code:
1 dayPHP DatePeriod::getEndDate() Method
What does DatePeriod::getEndDate() do?
The PHP DatePeriod:: method gets the end date .getEndDate()
PHP DatePeriod::getEndDate() Syntax
public DatePeriod::getEndDate ( void ) : DateTimeInterfacePHP DatePeriod::getEndDate() Parameters
This method does not accept any parameters.
PHP DatePeriod::getEndDate() Return Value
The PHP DatePeriod::getEndDate() method returns NULL if the DatePeriod does not have an end date. For example, when initialized with the recurrences parameter, or the isostr parameter without an end date.
PHP DatePeriod::getEndDate() Working Examples
1. DatePeriod::getEndDate() example
<?php
$period = new DatePeriod(
new DateTime('2016-05-16T00:00:00Z'),
new DateInterval('P1D'),
new DateTime('2016-05-20T00:00:00Z')
);
$start = $period->getEndDate();
echo $start->format(DateTime::ISO8601);
?>Output of the above code:
2016-05-20T00:00:00+00002. DatePeriod::getEndDate() without an end date
<?php
$period = new DatePeriod(
new DateTime('2016-05-16T00:00:00Z'),
new DateInterval('P1D'),
7
);
var_dump($period->getEndDate());
?>Output of the above code:
NULLPHP DatePeriod::getRecurrences() Method
What does DatePeriod::getRecurrences() do?
The PHP DatePeriod:: method gets the number of recurrences.getRecurrences()
PHP DatePeriod::getRecurrences() Syntax
public DatePeriod::getRecurrences ( void ) : intPHP DatePeriod::getRecurrences() Parameters
This method does not accept any parameters.
PHP DatePeriod::getRecurrences() Return Value
The PHP DatePeriod::getRecurrences() method returns the number of recurrences.
PHP DatePeriod::getStartDate() Method
What does DatePeriod::getStartDate() do?
The PHP DatePeriod:: method gets the start date .getStartDate()
PHP DatePeriod::getStartDate() Syntax
public DatePeriod::getStartDate ( void ) : DateTimeInterfacePHP DatePeriod::getStartDate() Parameters
This method does not accept any parameters.
PHP DatePeriod::getStartDate() Return Value
The PHP DatePeriod::getStartDate() method returns a DateTimeImmutable object when the DatePeriod is initialized with a DateTimeImmutable object as the start parameter.
PHP DatePeriod::getStartDate() Working Examples
1. DatePeriod::getStartDate() example
<?php
$period = new DatePeriod('R7/2016-05-16T00:00:00Z/P1D');
$start = $period->getStartDate();
echo $start->format(DateTime::ISO8601);
?>Output of the above code:
2016-05-16T00:00:00+0000Rate this post —
