Каков формат времени, используемого в дате создания 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.