【问题标题】:Facebook Graph API event post results in wrong timeFacebook Graph API 事件发布时间错误
【发布时间】:2013-01-06 21:17:43
【问题描述】:

我正在通过图形 api 将事件发布到 Facebook 页面,但是当我输入要求的开始和结束时间的 ISO 8601 时间戳时,在 Facebook 上查看事件时出现意外的时间偏移。

$post_obj['start_time'] = '2013-01-27T12:00+0100';
$post_obj['end_time']   = '2013-01-27T16:00+0100';

Facebook 活动页面显示 03:00 - 07:00,即休息 9 小时。

可能出了什么问题?

谢谢, 托马斯

编辑:当我使用 -0800 作为时区偏移时,时间显示正确。

【问题讨论】:

  • 好了,终于找到答案了。一切都很好,但您必须在您的应用设置中激活“事件时区”支持,默认情况下,对于迁移前的应用,该支持已停用。只有这样 ISO8601 才会被解析。由于应用程序从我的 UTC 时间戳中丢弃了 TZ,而是以太平洋标准时间 (PST) 发布,因此发生了 9 小时的偏移。希望这会有所帮助。

标签: php facebook-graph-api timezone utc iso8601


【解决方案1】:

您需要告诉它您所在的时区,因为大多数国家/地区的时区不同

date_default_timezone_set('Asia/Calcutta');
$timestamp = strtotime('2012-06-06T16:20:43+0000');
$local_datetime = date('c',$timestamp); 
echo $local_datetime;

这很好,检查你的时区蚂蚁再试一次

【讨论】:

  • 我以为我可以通过添加 +0100 来做到这一点?这应该指定我的时区,不是吗?
  • 是的,但是如果你这样做,函数会返回错误的值,php.net/manual/en/function.strtotime.php 有人在谈论这个错误,所以你可以像上面的例子一样尝试
  • "$d3 = strtotime("Sun, 26 Oct 0010 12:00:00 +0100"); //但是 10 月 26 日是星期二,而不是星期日。"
  • 仍然,我不明白这有什么帮助?我的时间戳是正确的 - 我尝试按照您的建议包含 date_default_timezone_set ,但无济于事。 Facebook 要求 ISO8601 日期时间,而不是某个当地时间。
  • $post_obj['start_time'] = '2013-01-27T12:00+0100';将其转换为毫秒,然后重试
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-07
  • 1970-01-01
  • 2012-04-18
  • 2011-03-28
相关资源
最近更新 更多