Какой формат времени используется в дате создания facebook?
Привет, я работаю над API facebook Graph, где мне нужна вся информация о публикациях группы. Итак, я сделал это и увидел [created_date'] => '2013-01-25T00:11:02+0000'
, что представляют собой эта дата и время, я имею в виду, что я знаю, что 2013-01-25
- это дата, а 00:11:02
- время, но что представляют T
и +0000
.
Кстати, где находится сервер facebook. Какую метку времени я должен использовать, чтобы соответствовать времени facebook?
Спасибо.
3 answers
T = ВРЕМЯ, а +0000 - смещение часового пояса. Facebook использует локализованные часовые пояса. Вы можете запросить временную метку Unix вместо строки, добавив параметр: date_format=U в вызов API graph.
Пожалуйста, смотрите эту ссылку для получения дополнительной информации.
Формат даты называется ISO 8601
. Буква T
используется для однозначного разделения даты и времени, а +0000
используется для обозначения смещения часового пояса, в данном случае по Гринвичу или UTC.
Тем не менее, вам, как правило, не нужно так сильно беспокоиться о фактическом содержимом; скорее, вы должны знать, как с ними работать. Чтобы использовать такую дату, вы можете использовать strtotime()
для преобразования ее в отметку времени:
$ts = strtotime('2013-01-25T00:11:02+0000');
Чтобы преобразовать отметку времени обратно в строковое представление, вы можете просто используйте gmdate()
с предопределенной константой даты DATE_ISO8601
:
echo gmdate(DATE_ISO8601, $ts);
В качестве альтернативы, используя DateTime
:
// import date
$d = DateTime::createFromFormat(DateTime::ISO8601, '2013-01-25T00:11:02+0000');
// export date
echo $dd->format(DateTime::ISO8601), PHP_EOL;
Это стандартный формат, в частности ISO 8601.
Как бы мне не нравилось ссылаться на него, http://www.w3schools.com/schema/schema_dtypes_date.asp имеет хорошее "понятное человеку" объяснение:
Дата и время указываются в следующей форме "ГГГГ-ММ-ДДТЧ:мм:сс" где:
YYYY indicates the year MM indicates the month DD indicates the day T indicates the start of the required time section hh indicates the hour mm indicates the minute ss indicates the second
Чтобы указать часовой пояс, вы можете либо ввести дату и время по времени UTC , добавив "Z" позади времени - вот так:
2002-05-30T09:30:10Z
Или вы можете указать смещение от времени UTC, добавив положительное или отрицательное время за временем - вот так:
2002-05-30T09:30:10-06:00
Или
2002-05-30T09:30:10+06:00
Следовательно, в вашем случае +0000
указывает смещение по времени 0 от UTC.