Поизучал документацию по теме и пришёл к такому выводу, который решил тут зафиксировать на память.
Во-первых, полезные ссылки:
https://en.wikipedia.org/wiki/ISO_8601
(именно в англоязычной версии есть пояснение буквы Z),
https://www.php.net/manual/ru/datetime.format.php
https://www.php.net/manual/ru/class.datetimeinterface.php
Теперь
вкратце:
T - это символ-граница, указывающий на то, что далее за ним идёт
указание уже времени, а не даты.
Z - это сокращённый вариант написания
нулевого отклонения часового пояса от UTC. Равнозначно "+00:00".
Если нам известна, к примеру, временная метка Unix (php функция time()), то получить дату в требуемом формате можно так:
Для PHP 8.0+:
gmdate('Y-m-d\\TH:i:sp', $time);
Для более ранних версий PHP (буква 'p' маленькая не работает):
gmdate('Y-m-d\\TH:i:s\\Z', $time);
Тут я не рассматриваю указание микросекунд, т.к. это бесполезно, когда на входе у нас time() или strtotime(). Но по необходимости можно добавить и микро- или милисекунды. Символы для параметра $format приведены в документации PHP, ссылка выше.
Обращаю внимание, используется именно gmdate(), а не просто date() - раз нам надо получить дату с нулевым отклонением часового пояса от UTC.
Комментариев нет:
Отправить комментарий