Facebook SDK返回错误的事件时间

问题描述 投票:0回答:1

我有一个网站,显示网站所有者的Facebook页面上的事件。几个星期前,有人注意到网站上的活动时间显示错误,但他们已经纠正了几年。所以基本上我想弄清问题是什么。

这是一个例子

活动X的开始时间戳为2017-12-18T17:00:00-0500。该日期是正确的,那个时间 - 1700或5:00 - 是正确的时间。

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

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

这将返回晚上10:00的时间

我有同样的问题,结束时间没有正确转换。

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

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

这会返回正确的日期,这让我更加困惑,因为如果日期转换正确,时间怎么不能正确转换?

有人可以帮我抽出时间进行转换,这样我就可以在网站上找到这些活动吗?

php facebook-graph-api timestamp facebook-php-sdk unix-timestamp
1个回答
1
投票

这是不同的时区问题。

你有一个日期时间与时区-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');
© www.soinside.com 2019 - 2024. All rights reserved.