php8.5
Home/ Manual/ reference / datetime/ The DateInterval class

The DateInterval class

Represents a date interval.

Intro

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.

How the time part of an interval, that is hours, minutes, seconds and microseconds, is applied when the interval is added to, or subtracted from, a date/time object depends on how the interval was created. For an interval created with DateInterval::__construct the time part covers elapsed time, whereas for an interval created with DateInterval::createFromDateString, or returned by DateTimeInterface::diff, it increments or decrements the individual component values. The date part, that is years, months and days, always increments or decrements the individual component values. The two therefore only give a different result when a timezone transition falls within the time part of the interval; see Date/Time Arithmetic.

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

Class synopsis

class DateInterval { }

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

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

Dateinterval

In this section

Source: reference/datetime/dateinterval.xml · from the official PHP manual (php/doc-en)