2013-01-25 3 views
11

Ciao sto lavorando su Facebook Graph API in cui ho bisogno di tutte le informazioni sui post di un gruppo. Quindi l'ho fatto e ho visto [created_date'] => '2013-01-25T00:11:02+0000' che cosa significa questa data e l'ora voglio dire so che 2013-01-25 è la data e 00:11:02 è il tempo, ma cosa rappresentano T e +0000.Qual è il formato dell'ora utilizzato nella data di creazione di facebook?

BTW dov'è il server di facebook. Quale timestamp dovrei utilizzare per abbinare il tempo di Facebook?

Grazie.

+0

Si chiama ISO. – Hyperboreus

+4

È ['ISO 8601'] (http://en.wikipedia.org/wiki/ISO_8601) per essere precisi –

risposta

19

T = TIME e +0000 è fuso orario. Facebook utilizza fusi orari localizzati. È possibile richiedere un timestamp unix invece della stringa aggiungendo il parametro: time_format = U alla chiamata del grafico.

Si prega di consultare: https://chris.banes.me/2011/06/24/correctly-parsing-graph-api-event-times/

+0

thk parco alto .. questo è proprio quello che mi serviva .. –

+1

+1. Non sapevo su time_format' :) –

+1

@HighParkCoder cosa significa fuso orario localizzato? –

4

Questo è un formato standard, in particolare ISO 8601.

Per quanto non mi piace che collega ad esso, http://www.w3schools.com/schema/schema_dtypes_date.asp ha una buona spiegazione "umano-comprensibile":

datetime viene specificato nel seguente formato "AAAA-MM-AAAAThh: mm : ss" dove:

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 

per specificare un fuso orario, è possibile immettere un dateTime nel tempo UTC da l'aggiunta di una "Z" dietro il tempo - in questo modo:

2002-05-30T09:30:10Z

oppure è possibile specificare un offset dal momento in UTC con l'aggiunta di un momento negativo positivo o dietro il tempo - in questo modo:

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

o

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

Pertanto, nel tuo caso lo +0000 indica un offset orario di 0 da UTC.

12

Il formato della data è chiamato ISO 8601. La lettera T viene utilizzata per separare data e ora in modo univoco e lo +0000 viene utilizzato per indicare l'offset del fuso orario, in questo caso GMT o UTC.

Detto questo, in genere non è necessario preoccuparsi così tanto dei contenuti effettivi; piuttosto dovresti sapere come lavorare con loro.Per utilizzare tale data, è possibile utilizzare strtotime() per convertirlo in un time-stamp:

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

Per convertire il time-stamp di nuovo in una rappresentazione di stringa, si può semplicemente utilizzare gmdate() con la data predefinita costante DATE_ISO8601:

echo gmdate(DATE_ISO8601, $ts); 

In alternativa, utilizzando 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() 'è disponibile dal 5.3.0 – Raptor

Problemi correlati