• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Facebook SDK返回不正确的事件时间

php 来源:Justin White 6次浏览

我有一个网站,显示来自网站所有者的Facebook页面的事件。几个星期前,有人注意到网站上的事件时间显示错误,但他们在几年内都是正确的。所以基本上我试图找出问题所在。Facebook SDK返回不正确的事件时间

下面是一个例子

事件X拥有2017-12-18T17的开始时间时间戳:00:00-0500。那个日期是正确的,那个时间 – 1700或5:00 – 是正确的时间。

所以我有这样的代码的时间戳转换的东西我可以显示

$start_time = date('g:i a', strtotime($event['start_time'])); 

这返回的10:00 PM

时间我与结束时间不正确地转换了同样的问题。

我使用此代码转换的日期(使用上述相同的时间戳):

$start_date = date('l, F j, Y', strtotime($event['start_time'])); 

这将返回正确的日期,这让我困惑甚至更多,因为如果日期正确转换,请问该怎么时间不正确转换?

有人可以帮助我得到转换的时间,所以我可以在网站上获得这些事件吗?


===========解决方案如下:

这是不同的时区问题。

你有一个带时区的日期时间-05:00但是,date('P')输出,你的服务器时区是+00:00。您可以使用DateTime类将日期时间转换为您想要的时区。

// convert time to datetime instance 
$timestamp = strtotime($event['start_time']); 
$datetime = new DateTime; 
$datetime->setTimestamp($timestamp); 

// set timezone to US/Eastern, Eastern Standard Time (EST), UTC -5 
$datetime->setTimezone(new DateTimeZone('US/Eastern')); 

// output datetime format 
$datetime->format('g:i a'); 
$datetime->format('l, F j, Y'); 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)