Формат даты PHP: ISO8601 против ISO8601_EXPANDEDPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Формат даты PHP: ISO8601 против ISO8601_EXPANDED

Сообщение Anonymous »

Контекст
Я хочу создать строку ISO-8601 из объекта DateTime в PHP 8.2. Класс Date имеет две связанные предопределенные константы для функции date_format():
  • Код: Выделить всё

    DATE_ISO8601
    - "Y-m-d\\TH:i:sO"
    Примечание. Этот формат несовместим с ISO-8601, но оставлен таковым из соображений обратной совместимости. Вместо этого используйте DateTimeInterface::ISO8601_EXPANDED, DateTimeInterface::ATOM для совместимости с ISO-8601. (см. ISO8601:2004, раздел 4.3.3, пункт d)
  • Код: Выделить всё

    DATE_ISO8601_EXPANDED
    - "X-m-d\\TH:i:sP"
    Этот формат позволяет использовать диапазоны лет за пределами обычного диапазона ISO-8601 0000-9999, всегда включая знак. Это также касается того, что эта часть часового пояса () совместим с ISO-8601.
Вопрос
Формат DATE_ISO8601_EXPANDED добавляет к строке начальный символ +, который НЕ распознается анализаторами ISO8601 на других языках (в частности, Swift):

Код: Выделить всё

+2023-03-29T05:54:21+00:00
Вывод DATE_ISO8601:

Код: Выделить всё

2023-03-29T05:54:21+0000
Я не могу определить, что означает предупреждение о DATE_ISO8601. Означает ли это:
  • "Этот формат не соответствует последней версии ISO8601, поэтому вместо него следует использовать "расширенный" вариант."
или
  • "В этом формате есть ошибки, которые иногда приводят к недопустимому выводу ISO8601, поэтому следует использовать расширенный формат."
Забавно, но раздел 4 ISO 8601 недоступен для публичного доступа без покупки, поэтому я не могу его прочитать. Но «расширенный» формат также не похож на стандарт ISO8601, поскольку спецификация требует использования ведущего символа + только тогда, когда год больше 9999.

Подробнее здесь: https://stackoverflow.com/questions/758 ... 1-expanded
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»