我从各种渠道得知Facebook存储事件的开始和结束时间为PST。但是必须有一些我想念的东西。拿这个我创建的facebook event。我住在意大利,实际上当我插入事件时间时它表示UTC + 2.我插入2012-05-18 10.30 PM
作为事件开始时间。我希望这可以保存为太平洋时间下午1点30分,因为PST应该是GMT -7(因为夏令时)。但是如果我做的话
$start = date("Y-m-d H:i:s", $facebook_event['start_time'] );
$start
出现2012-05-19 05:30:00
,这是我插入后7小时!怎么可能?我错过了什么?
编辑 - 这就是我检索事件start_time的方法
$fql = "SELECT
eid,
name,
description,
start_time,
end_time,
venue,
location,
update_time
FROM
event
WHERE
eid IN (SELECT eid FROM event_member WHERE uid = $id)" ;
$events = $facebook->api( array(
'method' => 'fql.query',
'query' => $fql,
) );
我没有使用/$id/events/
api电话,因为当我收到我的朋友活动时,我总是回到空集
答案 0 :(得分:4)
让我解释一下Facebook时区规则,
Facebook总是假设您发送的start_time或end_time是在太平洋时区。所以我们有责任在太平洋时区送他们。
在上述情况下, 您在美国东部时间插入2012-05-18 10.30 PM,但Facebook假设您在太平洋时间发送它。所以它转换为UTC为2012-05-19 05:30:00。您将通过API重温。
简单地说fb_stored_time = epoch(UTC(assume_Pacific_time))
答案 1 :(得分:0)
在日期函数之前将它放在脚本中。
date_default_timezone_set('America/Los_Angeles');