2013-01-25 12 views
11

Witam pracuję nad facebook Graph API, w którym potrzebuję wszystkich informacji o postach grupy. Zrobiłem to i zobaczyłem [created_date'] => '2013-01-25T00:11:02+0000' co oznacza ta data i godzina, co oznacza, że ​​wiem, że 2013-01-25 jest datą i 00:11:02 jest czasem, ale co reprezentuje T i +0000.Jaki jest format czasu stosowany w datach utworzonych na Facebooku?

BTW gdzie jest serwer Facebooka. Którego znacznika czasu powinienem użyć, aby dopasować czas na Facebooku?

Dziękuję.

+0

To się nazywa ISO. – Hyperboreus

+4

To ['ISO 8601'] (http://en.wikipedia.org/wiki/ISO_8601) by być precyzyjnym –

Odpowiedz

19

T = TIME i +0000 to przesunięcie strefy czasowej. Facebook używa zlokalizowanych stref czasowych. Możesz zażądać uniksowego znacznika czasu zamiast łańcucha, dodając do wywołania wykresu parametr: time_format = U.

proszę zobaczyć: https://chris.banes.me/2011/06/24/correctly-parsing-graph-api-event-times/

+0

thnk you high park .. to jest to, czego potrzebowałem .. –

+1

+1. Nie wiedziałem o 'time_format' :) –

+1

@HighParkCoder co oznacza zlokalizowana strefa czasowa? –

4

Jest to standardowy format, konkretnie ISO 8601.

Aż mi się nie podoba linkami do niej, http://www.w3schools.com/schema/schema_dtypes_date.asp ma dobrego „człowieka-zrozumiały” Objaśnienie:

DateTime jest określony w następującej postaci „YYYY-MM-DDTgg: mm : ss” gdzie:

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 

Aby określić strefę czasową, można wprowadzić datetime w czasie UTC przez dodanie "z" za czas - tak:

2002-05-30T09:30:10Z

lub można określić przesunięcie od czasu UTC dodając pozytywnej lub negatywny czasu tyle czasu - tak:

2002-05-30T09:30:10-06:00

lub

2002-05-30T09:30:10+06:00

Dlatego w Twoim przypadku +0000 wskazuje przesunięcie czasowe 0 z UTC.

12

Format daty nazywa ISO 8601. Litera T służy do jednoznacznego oddzielenia daty i czasu, a do oznaczenia przesunięcia strefy czasowej, w tym przypadku GMT lub UTC, używana jest +0000.

To powiedziawszy, generalnie nie trzeba się tak bardzo martwić o rzeczywistą zawartość; raczej powinieneś wiedzieć, jak z nimi pracować.Aby skorzystać z takiej daty, można użyć strtotime() przekonwertować go do czasu znaczka:

$ts = strtotime('2013-01-25T00:11:02+0000'); 

do konwersji czasu i daty z powrotem na ciąg znaków, można po prostu użyć gmdate() z wybranym dniu stałej DATE_ISO8601:

echo gmdate(DATE_ISO8601, $ts); 

Alternatywnie, przy użyciu DateTime:

// import date 
$d = DateTime::createFromFormat(DateTime::ISO8601, '2013-01-25T00:11:02+0000'); 

// export date 
echo $dd->format(DateTime::ISO8601), PHP_EOL; 
+0

* sidenote: *' DateTime :: createFromFormat() 'jest dostępny od 5.3.0 – Raptor

Powiązane problemy