1

我正在尝试在启用时区选项的情况下将事件添加到 Facebook。我正在尝试在英国添加时区为 "Europe/London" 的事件。这就是我注意到的。

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

[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 

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

谢谢林恩

4

1 回答 1

3

一个小的修正。你说:

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

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

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

Facebook Graph API 在用户对象中表示这一点。它有一个timezone只是数字的属性。我猜 Facebook 开发人员还没有阅读我明确指出“时区!=偏移”的时区标签 wiki 。

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

是的。在下一次从 BST 切换到 GMT 后,即今年 10 月 27 日,用户登录后,它将显示正确的时间。

于 2013-08-13T15:38:36.367 回答