繁体   English   中英

我的Facebook活动的事件时间显示不正确(通过Javascript提交)

[英]Event Time displaying incorrectly for my Facebook event (submitted via Javascript)

我目前正在撰写一个与Facebook交互并为用户创建活动的网站。 我正在使用Javascript提交事件,该事件已成功提交。 问题是,Facebook上显示的时间与我提交的时间相差甚远。

这是我的代码:

var event = {
    start_time: '{{ show_time.start_time|date:'U' }}',
    name: 'Movie Night: ' + '{{ show_time.movie.title }}'
};

FB.api('/me/events', 'post', event, function(response) {
    // Send invites, etc...
});

是的,我们在那里使用了一些Django。

{{show_time.start_time | date:'U'}}将放入一个纪元时间戳。 我还发送了一个ISO 8601日期时间,结果相同。 目前,我们在日期时间内没有时区信息。 我不确定这是否会导致问题,因为要测试,我已经将-06:00添加到start_time,并且它仍然在Facebook上显示错误。

令我困惑的是,在Facebook的文档中,它们显示了一条据说会创建一个事件的卷曲线,并且它们发送的start_time是一个纪元时间戳。 在同一页面的其他部分,他们说start_time必须是ISO 8601.我还读过你需要将你的日期时间转换为太平洋时间,然后转换为纪元时间戳,然后将其作为start_time提交。 我只是想知道正确的方法是什么。 Facebook的文档在这方面看起来很糟糕,所以我希望SO能提供帮助! 谁通过Javascript API实际上通过Facebook创建了一个活动,并让它显示在网站上的正确时间? 你是怎么做到的?

首先,Facebook事件时区管理存在一个错误。 如果您在API和Facebook上查看活动,您可以看到不同的日期。 API上的正确日期和Facebook上的错误日期,因为您通过API添加事件。 如果您在Facebook上创建了活动,则API将显示错误的日期。

如果您尝试任何API事件调用,您可以看到使用的格式:

"end_time": "2010-03-15T00:30:00+0000"

您可以注意到,日期/时间格式是ISO 8601,您应该使用它,但可能,时间戳应该有效。 通过查看时区(UTC,+ 0000),您可以将guest将您的本地日期转换为UTC(+0000),但这是问题所在。

日期必须转换为PST / PDT时区,但保持UTC时区指示符(+0000)为Mike Lambert发现http://bugs.developers.facebook.net/show_bug.cgi?id=12558

我想在这一点上API是错误的,但可以预见错误,修复它只会破坏其他开发人员。 所以你可以说这是一个文档错误: http//developers.facebook.com/docs/reference/api/event

应该确实说这些ISO格式的UTC时间都应转换为PST / PDT以检索用户输入的事件时间。 (这不是事件实际发生的UTC / GMT时间。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM