Как получить метку времени в формате ISO 8601 с часовым поясом в php

На основании документации wix, < strong>2014-04-16T11:16:27.930Z — временная метка в формате ISO 8601 с часовым поясом. Быстрое исследование показывает, что временная метка в ISO 8601 отображает часовой пояс с +time_interval (например, +00:00).

Я попробовал дату ('c'), которая отображает: 2014-04-16T06:23:31+00:00

Может ли кто-нибудь сказать мне, как отображать метку времени в 2014-04-16T11:16:27.930Z, а не 2014-04-16T06:23:31+00:00


person lomse    schedule 16.04.2014    source источник
comment
Вы могли бы просто построить это самостоятельно, используя date(), если ничего не помогает, верно?   -  person Andresch Serj    schedule 16.04.2014
comment
Верно, а как получить часовой пояс в таком формате 27.930Z в метке времени? Спасибо   -  person lomse    schedule 16.04.2014
comment
Разве 930Z не является определением часового пояса? › Часовые пояса в ISO 8601 представлены как местное время (с неуказанным местоположением), как UTC или как смещение от UTC.   -  person Andresch Serj    schedule 16.04.2014
comment
Поэтому я подумал, что это будет 2014-04-16T11:16:27, представляющее время в секундах и миллисекундах, а 930Z — это смещение от UTC.   -  person Andresch Serj    schedule 16.04.2014
comment
Основываясь на вашем комментарии, я думаю, мне нужно искать смещение от UTC. Спасибо за идею.   -  person lomse    schedule 16.04.2014
comment
Википедия говорит: Если время указано в формате UTC, добавьте Z сразу после времени без пробела. Z — это обозначение зоны для нулевого смещения UTC. Поэтому 09:30 UTC представляется как 09:30Z или 09:30Z. 14:45:15 UTC будет 14:45:15Z или 144515Z.   -  person Andresch Serj    schedule 16.04.2014
comment
Просто сделайте gmdate('Y-m-d\TH:i:s.u\Z');   -  person Glavić    schedule 16.04.2014
comment
@Glavic Ты классный! Спасибо   -  person lomse    schedule 16.04.2014


Ответы (1)


Учитывая статью Википедии по ISO_8601, смещение UTC может быть определено как определение часа:минуты как Определение часов-минут.

Z — это обозначение зоны для нулевого смещения UTC. Поэтому 09:30 UTC представляется как 09:30Z или 09:30Z. 14:45:15 UTC будет 14:45:15Z или 144515Z.

Метод даты PHP определяет параметр Z как

Z Смещение часового пояса в секундах. Смещение часовых поясов к западу от UTC всегда отрицательное, а к востоку от UTC всегда положительное.

Итак, если предположить, что смещение, упомянутое в статье в Википедии, указано в секундах, вы можете создать свой собственный ISO 8601, используя дату. Пример приведен для текущего времени/даты сервера:

date('Y-m-d\TH:i:s.Z\Z', time());

Кроме того, как упоминалось в комментариях @AndrewIsOffline, поскольку PHP5, использование «c» также даст вам дату ISO 8601:

date('c', time());
person Andresch Serj    schedule 16.04.2014
comment
Немного устарело, но с PHP 5 простое использование «c» в качестве формата даты даст полное время в формате ISO 8601. - person AndrewIsOffline; 27.06.2020