13

嗨,我正在研究 facebook Graph API,我需要一个组的所有帖子信息。所以我做到了,看到[created_date'] => '2013-01-25T00:11:02+0000'这个日期和时间代表什么,我的意思是我知道 2013-01-25日期和时间00:11:02,但代表什么。T+0000

顺便说一句,facebook的服务器在哪里。我应该使用哪个时间戳来匹配 Facebook 时间?

谢谢你。

4

3 回答 3

26

T = TIME,+0000 是时区偏移量。Facebook 使用本地化时区。您可以通过在图形 API 调用中添加参数:date_format=U 来请求 Unix 时间戳而不是字符串。

请参阅此链接了解更多信息。

于 2013-01-25T06:55:53.470 回答
13

日期格式称为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;
于 2013-01-25T07:01:51.313 回答
5

这是一种标准格式,特别是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。

于 2013-01-25T06:54:24.537 回答