FaceBook时区和活动时间

时间:2013-08-13 08:38:36

标签: facebook-graph-api timezone

我正在尝试在启用了时区选项的情况下将事件添加到FaceBook。我想在英国添加时区为“欧洲/伦敦”的活动。这是我注意到的。

当我发送以下开始&结束时间

[start_time] => 2014-08-24T20:00:00+0100
[end_time] => 2014-08-24T22:00:00+0100

我得到的时间是

[When]
    Sunday, August 24, 2014
    [Time]
    8:00pm until 10:00pm 

从FaceBook网站查看时。我的时区设置为伦敦,即UTC。但是当我在11月发送活动时,

[start_time] => 2014-11-24T20:00:00+0000
[end_time] => 2014-11-24T22:00:00+0000

它显示为

[When]
        Monday, November 24, 2014
        [Time]
        9:00pm until 11:00pm 

这是预期的行为吗?是时候调整时间,晚上8点会在11月24日正确显示吗?

由于 林恩

1 个答案:

答案 0 :(得分:3)

一个小小的修正。你说:

  

我的时区设置为伦敦,即UTC

冬天Europe/London区域为UTC+00:00,通常称为GMT。在夏天,它会切换到UTC+01:00。通常称为BST。说伦敦 UTC是不准确的。我想你已经知道了,我只是在这里为别人说明。

不幸的是,您描述的行为是Facebook的预期。归结为Facebook不知道你在Europe/London。当您登录时,它只会从JavaScript new Date().getTimezoneOffset()获取当前时区偏移量。由于它当前为UTC+01:00,因此当您以用户身份查看页面时,这是应用于事件的偏移量。它做出了一个有缺陷的假设,即偏移量不会改变,或者在下一次转换之前你不会看到未来的事件时间。

Facebook Graph API在user对象中表示了​​这一点。它有timezone属性,只是一个数字。我想Facebook开发人员还没有阅读timezone tag wiki我明确指出“时区!=偏移”。

  

时间会在11月24日调整,晚上8点会正确显示吗?

是。一旦用户在从BST切换到GMT which is on October 27th this year后立即登录,它将显示正确的时间。