2011-02-16 533 views
1

經過〜2-3小時的搜索找不到明確的答案: 我有一個用戶的時區(他從列表中選擇它) 我有一個UTC時間(不是當前時間) 所以我需要像PHP的GetTimeForRegion(時間,時區)。有沒有這些功能,圖書館或服務?Php:獲取當前區域的時間

+1

這個職位似乎是相似的。 http://stackoverflow.com/questions/952975/how-can-i-easily-convert-dates-from-utc-via-php – gokujou 2011-02-16 15:25:25

回答

8

你可以使用DateTime :: setTimezone()。如果您的UTC日期是UNIX時間戳,你可以使用一些這樣的代碼:

$date = new DateTime(); 
$date->setTimezone(new DateTimeZone('UTC')); 
$date->setTimestamp(1297869844); 
$date->setTimezone(new DateTimeZone('Europe/Paris')); 

echo $date->format('Y-m-d H:i:s'); 
// Will print 2011-02-16 16:24:04 
0

你需要看看在PHP中Date/Time API。我強烈建議你不要在php中使用gmdate和更早的日期函數。

對於您的情況,您應該詢問用戶的時區爲Olson based

Artefact2的代碼將做到這一點。

1

日期('r')或日期('c')可能對您有所幫助。

echo date('r')打印Thu, 16 Feb 2011 16:01:07 +0200

echo date('c')打印2011-02-16T16:01:07+02:00