我正在使用 Facebook PHP SDK 像这样创建一个事件
$fb_event['name'] = $_POST['post_title'];
$fb_event['description'] = $_POST['content'];
$fb_event['start_time'] = date( "c", Ai1ec_Facebook_Event::get_facebook_start_time($event->start));
$fb_event['location'] = "Dove ti pare basta che si aggiorni al mio timezone";
$fb_event['street'] = "Via andrea del sarto 9";
$fb_event['city'] = "Milan";
$facebook = $this->facebook_instance_factory();
try {
$result = $facebook->api( "/me/events", "POST", $fb_event );
} catch (FacebookApiException $e) {
fb($e);
}
Ai1ec_Facebook_Event::get_facebook_start_time
只需一个时间戳并将其转换为 UTC 假装它是 PST 。这意味着如果我决定事件在 UTC 晚上 8 点开始,该函数将返回第二天凌晨 3 点。
Evrything 正常工作并且我的事件已创建,问题是如果我与我的用户一起查看位于 TIMEZONE UTC + 2 中的事件,我仍然是晚上 8 点而不是晚上 10 点
这是创建的事件https://www.facebook.com/events/245655182207213/
似乎 Facebook 在创建此事件时忽略了时区,为什么?我必须告诉 Facebook 什么才能使用标准时区?
编辑 - 阅读本文developers.facebook.com/roadmap/#timezone-less-events后,我意识到有时区字段,但我无法让它工作,因为如果我发送
$fb_event['timezone'] = "Europe/Sofia";
Facebook 只是忽略了这一点,当我查询事件时,我会为时区返回 NULL。