(PHP 5 >= 5.5.0, PHP 7, PHP 8)
Интерфейс DateTimeInterface разработали, чтобы объявления типов параметров, значений возврата или свойств принимали как значение объекты классов DateTimeImmutable и DateTime . Реализовать интерфейс в пользовательских классах невозможно.
В интерфейсе также определили общие константы для форматирования объектов DateTimeImmutable и DateTime методами DateTimeImmutable::format() и DateTime::format() .
Замечание: Формат несовместим со стандартом ISO-8601, но остаётся по соображениям обратной совместимости. Для совместимости со стандартом ISO-8601 указывают константу DateTimeInterface::ISO8601_EXPANDED или DateTimeInterface::ATOM. См. пункт d раздела 4.3.3 стандарта ISO8601:2004.
Замечание: За счёт включения знакового символа формат принимает диапазоны лет за пределами нормального диапазона стандарта ISO-8601 —
0000-9999. Формат гарантирует, что часть+01:00с обозначением часового пояса совместима со стандартом ISO-8601.
| Версия | Описание |
|---|---|
| 8.5.0 |
Константы DATE_RFC7231
и DateTimeInterface::RFC7231 устарели.
|
| 8.4.0 | Константы класса стали типизированными. |
| 8.2.0 |
Добавили константу
DateTimeInterface::ISO8601_EXPANDED .
|
| 7.2.0 | Константы класса DateTime теперь определяются в интерфейсе DateTimeInterface. |
Please note that if you are using DATE_RFC7231 format (used in HTTP/1.1), you'll need to change the DateTime object timezone to GMT *before*, or you'll encounter weird results, as this format DOES NOT convert the date to GMT.
So if you have a DateTime object using UTC+01:00 as its timezone, you will get a difference of 1 hour between your resulting date string and what should be the "correct" date.
Recommended use:
<?php
$date_gmt = clone $date;
$date_gmt->setTimezone(new \DateTimeZone('GMT'));
echo $date_gmt->format(DATE_RFC7231);
?>