0

我有一個網站,顯示來自網站所有者的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'])); 

這將返回正確的日期,這讓我困惑甚至更多,因爲如果日期正確轉換,請問該怎麼時間不正確轉換?

有人可以幫助我得到轉換的時間,所以我可以在網站上獲得這些事件嗎?

+0

看起來像不同的時區問題。 –

+0

'date('P')'的輸出是什麼? – Ben

+0

@本日期('P')輸出爲+00:00 –

回答

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'); 
+0

您是一位紳士和學者。謝謝! –