嗨,我正在研究 facebook Graph API,我需要一个组的所有帖子信息。所以我做到了,看到[created_date'] => '2013-01-25T00:11:02+0000'
这个日期和时间代表什么,我的意思是我知道 2013-01-25
日期和时间00:11:02
,但代表什么。T
+0000
顺便说一句,facebook的服务器在哪里。我应该使用哪个时间戳来匹配 Facebook 时间?
谢谢你。
嗨,我正在研究 facebook Graph API,我需要一个组的所有帖子信息。所以我做到了,看到[created_date'] => '2013-01-25T00:11:02+0000'
这个日期和时间代表什么,我的意思是我知道 2013-01-25
日期和时间00:11:02
,但代表什么。T
+0000
顺便说一句,facebook的服务器在哪里。我应该使用哪个时间戳来匹配 Facebook 时间?
谢谢你。
T = TIME,+0000 是时区偏移量。Facebook 使用本地化时区。您可以通过在图形 API 调用中添加参数:date_format=U 来请求 Unix 时间戳而不是字符串。
请参阅此链接了解更多信息。
日期格式称为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;
这是一种标准格式,特别是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
要指定时区,您可以通过在时间后面添加“Z”来输入 UTC 时间中的 dateTime - 如下所示:
2002-05-30T09:30:10Z
或者您可以通过在时间后面添加正时间或负时间来指定与 UTC 时间的偏移量 - 如下所示:
2002-05-30T09:30:10-06:00
或者
2002-05-30T09:30:10+06:00
因此,在您的情况下,+0000
表示与 UTC 的时间偏移量为 0。