Каков формат времени, используемого в дате создания facebook?
Привет, я работаю над API-интерфейсом facebook, где мне нужна вся информация о сообщениях группы. Поэтому я сделал это и увидел [created_date'] => '2013-01-25T00:11:02+0000'
, что означает эта дата и время. Я имею в виду, что я знаю, что 2013-01-25
- дата, а 00:11:02
- время, но что означает T
и +0000
.
Кстати, где находится сервер Facebook. Какую метку времени я должен использовать для соответствия времени в facebook?
Спасибо.
Ответы
Ответ 1
T = ВРЕМЯ, а +0000 - смещение часового пояса. Facebook использует локализованные часовые пояса. Вы можете запросить временную метку unix вместо строки, добавив параметр: time_format = U к вашему графическому вызову.
Смотрите: https://chris.banes.me/2011/06/24/correctly-parsing-graph-api-event-times/
Ответ 2
Формат даты называется ISO 8601
. Буква T
используется для разделения даты и времени однозначно, а +0000
используется для обозначения смещения временной зоны, в данном случае GMT или 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;
Ответ 3
Это стандартный формат, в частности ISO 8601.
Насколько мне не нравится привязка к нему, http://www.w3schools.com/schema/schema_dtypes_date.asp имеет хорошее "понятное человеку" объяснение:
DateTime задается в следующей форме: "YYYY-MM-DDThh: mm: ss" где:
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
Чтобы указать часовой пояс, вы можете либо ввести дату Date в 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.