The DateInterval class

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

Introduction

Represents a date interval.

A date interval stores either a fixed amount of time (in years, months, days, hours etc) or a relative time string in the format that DateTimeImmutable's and DateTime's constructors support.

More specifically, the information in an object of the DateInterval class is an instruction to get from one date/time to another date/time. This process is not always reversible.

A common way to create a DateInterval object is by calculating the difference between two date/time objects through DateTimeInterface::diff().

Since there is no well defined way to compare date intervals, DateInterval instances are incomparable.

Class synopsis

class DateInterval {
/* Properties */
public int $y;
public int $m;
public int $d;
public int $h;
public int $i;
public int $s;
public float $f;
public int $invert;
public mixed $days;
/* Methods */
public __construct(string $duration)
public static createFromDateString(string $datetime): DateInterval|false
public format(string $format): string
}

Properties

Warning

The available properties listed below depend on PHP version, and should be considered as readonly.

y

Number of years.

m

Number of months.

d

Number of days.

h

Number of hours.

i

Number of minutes.

s

Number of seconds.

f

Number of microseconds, as a fraction of a second.

invert

Is 1 if the interval represents a negative time period and 0 otherwise. See DateInterval::format().

days

If the DateInterval object was created by DateTimeImmutable::diff() or DateTime::diff(), then this is the total number of full days between the start and end dates. Otherwise, days will be false.

from_string

If the DateInterval object was created by DateInterval::createFromDateString(), then this property's value will be true, and the date_string property will be populated. Otherwise, the value will be false, and the y to f, invert, and days properties will be populated.

date_string

The string used as argument to DateInterval::createFromDateString().

Changelog

Version Description
8.2.0 The from_string and date_string properties were added for DateInterval instances that were created using the DateInterval::createFromDateString() method.
8.2.0 Only the y to f, invert, and days will be visible.
7.4.0 DateInterval instances are incomparable now; previously, all DateInterval instances were considered equal.
7.1.0 The f property was added.

Table of Contents