Facebook SDK返回不正确的事件时间
我有一个网站,显示来自网站所有者的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');
以上是 Facebook SDK返回不正确的事件时间 的全部内容, 来源链接: utcz.com/qa/260822.html