php8.5
Home/ Manual/ reference / datetime/ The DateTimeInterface interface

The DateTimeInterface interface

DateTimeInterface was created so that parameter, return, or property type declarations may accept either DateTimeImmutable or DateTime as a value. It is not possible to implement this interface with userland classes.

Intro

DateTimeInterface was created so that parameter, return, or property type declarations may accept either DateTimeImmutable or DateTime as a value. It is not possible to implement this interface with userland classes.

Common constants that allow for formatting DateTimeImmutable or DateTime objects through DateTimeImmutable::format and DateTime::format are also defined on this interface.

Interfacesynopsis

implements DateTimeInterface { }

Predefined Constants

DateTimeInterface::ATOMstring
DATE_ATOM

Atom (example: 2005-08-15T15:52:01+00:00); compatible with ISO-8601, RFC 3339, and XML Schema

DateTimeInterface::COOKIEstring
DATE_COOKIE

HTTP Cookies (example: Monday, 15-Aug-2005 15:52:01 UTC)

DateTimeInterface::ISO8601string
DATE_ISO8601

ISO-8601-like (example: 2005-08-15T15:52:01+0000)

Note

This format is not compatible with ISO-8601, but is left this way for backward compatibility reasons. Use DateTimeInterface::ISO8601_EXPANDED, DateTimeInterface::ATOM for compatibility with ISO-8601 instead. (ref ISO8601:2004 section 4.3.3 clause d)

DateTimeInterface::ISO8601_EXPANDEDstring
DATE_ISO8601_EXPANDED

ISO-8601 Expanded (example: +10191-07-26T08:59:52+01:00)

Note

This format allows for year ranges outside of ISO-8601's normal range of 0000-9999 by always including a sign character. It also ensures that the timezone part (+01:00) is compatible with ISO-8601.

DateTimeInterface::RFC822string
DATE_RFC822

RFC 822 (example: Mon, 15 Aug 05 15:52:01 +0000)

DateTimeInterface::RFC850string
DATE_RFC850

RFC 850 (example: Monday, 15-Aug-05 15:52:01 UTC)

DateTimeInterface::RFC1036string
DATE_RFC1036

RFC 1036 (example: Mon, 15 Aug 05 15:52:01 +0000)

DateTimeInterface::RFC1123string
DATE_RFC1123

RFC 1123 (example: Mon, 15 Aug 2005 15:52:01 +0000)

DateTimeInterface::RFC7231string
DATE_RFC7231

RFC 7231 (since PHP 7.0.19 and 7.1.5) (example: Sat, 30 Apr 2016 17:52:13 GMT)

DateTimeInterface::RFC2822string
DATE_RFC2822

RFC 2822 (example: Mon, 15 Aug 2005 15:52:01 +0000)

DateTimeInterface::RFC3339string
DATE_RFC3339

Same as DATE_ATOM

DateTimeInterface::RFC3339_EXTENDEDstring
DATE_RFC3339_EXTENDED

RFC 3339 EXTENDED format (example: 2005-08-15T15:52:01.000+00:00)

DateTimeInterface::RSSstring
DATE_RSS

RSS (example: Mon, 15 Aug 2005 15:52:01 +0000)

DateTimeInterface::W3Cstring
DATE_W3C

World Wide Web Consortium (example: 2005-08-15T15:52:01+00:00)

Changelog

VersionDescription
8.5.0The DATE_RFC7231 and DateTimeInterface::RFC7231 constants have been deprecated.
8.4.0The class constants are now typed.
8.2.0The constant DateTimeInterface::ISO8601_EXPANDED was added.
7.2.0The class constants of DateTime are now defined on DateTimeInterface.

Datetimeinterface

In this section

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