Я хочу создать строку ISO-8601 из объекта DateTime в PHP 8.2. Класс Date имеет две связанные предопределенные константы для функции date_format():
- - "Y-m-d\\TH:i:sO"
Код: Выделить всё
DATE_ISO8601
Примечание. Этот формат несовместим с ISO-8601, но оставлен таковым из соображений обратной совместимости. Вместо этого используйте DateTimeInterface::ISO8601_EXPANDED, DateTimeInterface::ATOM для совместимости с ISO-8601. (см. ISO8601:2004, раздел 4.3.3, пункт d) - - "X-m-d\\TH:i:sP"
Код: Выделить всё
DATE_ISO8601_EXPANDED
Этот формат позволяет использовать диапазоны лет за пределами обычного диапазона ISO-8601 0000-9999, всегда включая знак. Это также касается того, что эта часть часового пояса () совместим с ISO-8601.Код: Выделить всё
+01:00
Формат DATE_ISO8601_EXPANDED добавляет к строке начальный символ +, который НЕ распознается анализаторами ISO8601 на других языках (в частности, Swift):
Код: Выделить всё
+2023-03-29T05:54:21+00:00
Код: Выделить всё
2023-03-29T05:54:21+0000
- "Этот формат не соответствует последней версии ISO8601, поэтому вместо него следует использовать "расширенный" вариант."
- "В этом формате есть ошибки, которые иногда приводят к недопустимому выводу ISO8601, поэтому следует использовать расширенный формат."
Подробнее здесь: https://stackoverflow.com/questions/758 ... 1-expanded
Мобильная версия