2017-10-19 91 views
1

我正在使用API​​來抓住每小時的統計數據。不幸的是,我無法定義時區,因此我得到的小時數列只是一個表示EST時區中的值的數字。如何僅基於代表特定時間的數字在PHP中移動時區?

有什麼辦法將這個時間信息轉換成另一個時區?

這裏是陣列的外觀:

array (2) 
result => array (20) 
| 0 => array (14) 
| | impressions => 90177 
| | clicks => 186 
| | video_hits => 0 
| | video_views => 0 
| | value => 90.177 
| | goals => 52 
| | hour => 15 
| | ctr => 0.20626101999401 
| | cpm => 0.01 
| | cpv => 0 
| | vtr => 0 
| | cpc => 0.0048482258064516 
| | cost => 0.90177 
| | ecpa => 0.017341730769231 

於是小時是15,即。下午3點,我需要將此解釋的時區更改爲當地時區。

任何想法?

回答

0

EST還是EDT? (夏令時問題)。

我會承擔美國東部時間。在這種情況下,並假設日期沒關係,試試:

$date = DateTime::createFromFormat('H', $hour, new DateTimeZone('America/New_York')); 
$date->setTimezone(new DateTimeZone($userTimeZone)); 
$userHour = $date->format('H'); 
+0

這給我:致命錯誤:未捕獲的異常:DateTimeZone :: __結構():未知的或壞的時區()的.. – depi

+0

你有沒有使用有效的時區?這個錯誤是相當自我解釋.. – Devon

+0

該死,我忘了更改$ userTimeZone。現在完美運作。你是德文人! – depi