Мне нужно отображать и обрабатывать даты UTC в следующем формате:
2013-06-28T22: 15: 00Z
Поскольку этот формат является частью стандарта ISO8601, у меня нет проблем с созданием объектов DateTime из строк, подобных приведенным выше. Однако я не могу найти чистый способ (что означает отсутствие строковых манипуляций, таких как substr и replace, и т. Д.), Чтобы представить объект DateTime в нужном формате. Я попытался настроить настройки сервера и php datetime с небольшим успехом. Я всегда получаю:
$date->format(DateTime::ISO8601); // gives 2013-06-28T22:15:00+00:00
Есть ли формат даты или настройки конфигурации, которые дадут мне нужную строку? Или мне придется добавить «Z» вручную в пользовательский формат времени?
Нет, для желаемого формата нет специальной константы. Я хотел бы использовать:
$date->format('Ymd\TH:i:s\Z');
Но вам нужно будет убедиться, что время, которое вы используете, действительно UTC, чтобы избежать ошибок интерпретации в вашем приложении.