2017-04-04 172 views
0

我想從使用Carbon的Laravel 5.3中的UTC偏移獲取時區名稱。代碼下面列出的任何幫助將不勝感激。Laravel 5.3 - Carbon Date - UTC offset獲取時區名稱

/* current code iteration */ 
$utcOffset = -5; 
$timezone = Carbon::now($utcOffset)->timezone->getName(); 
echo $timezone; 
// Result: -05:00 
// Expected Result: EST 

/* tried code */ 
$timezone = Carbon::now($utcOffset)->tzName; 
// Result: -05:00 

/* What I used prior to Carbon */ 
$timezone = timezone_name_from_abbr(null, $utcOffset * 3600, TRUE); 
$dateTime = new DateTime(); 
$dateTime->setTimeZone(new DateTimeZone($timezone)); 
$timezone = $dateTime->format('T');' 

我在想什麼?我覺得愚蠢..

回答

0

試圖更新碳素沒有evail結束了使用舊的DateTime類。

$timezone = timezone_name_from_abbr(null, $utcOffset * 3600, TRUE); 
$dateTime = new DateTime(); 
$dateTime->setTimeZone(new DateTimeZone($timezone)); 
$timezone = $dateTime->format('T'); 
1

這個工作對我來說:

$now = Carbon::now(-5); 

echo $now->timezone; 
// prints 'America/Chicago' 
+0

基於[git倉庫(https://github.com/briannesbitt/Carbon/blob/master/src/Carbon/Carbon.php#L240)它是'$ NOW-> tzName' –

+0

我猜測它是兩個:http://imgur.com/mJR6Wen – devk

+0

這將返回錯誤:類DateTimeZone的對象無法轉換爲字符串。 –