2017-06-06 129 views
0

我正在使用時區根據他的時區獲取用戶的確切時間。我有一個下拉列表來爲用戶選擇時區並在選擇他們的時區時顯示他們的當前時間。我使用的代碼是:PHP:使用時區獲取當前區域設置

$timezone = 'America/New_York'; 
date_default_timezone_set($timezone); 
echo date('H:i:s A'); 

它工作正常。我想以使用時區的當前時間的相同方式獲取該用戶的區域設置。

如何使用時區實現當前語言環境? PHP有任何一種解決方案來獲取當前使用時區的區域設置嗎?

+0

可能重複的[如何檢測用戶的時區?](https://stackoverflow.com/questions/16525617/how-to-detect-users-timezone) – Swellar

+0

我想獲得像en_US當前的語言環境,所以它是不確定重複 –

+2

當一個時區有多於1個Locale時,您需要哪一個? 順便說這些是2種不同的東西,我認爲這是不可能的! – user3733648

回答

-1

區域設置和時區是正交的。你無法從另一箇中確定一個。

  • America/New_York意味着用戶的本地時間對準紐約市,這發生在美國被稱爲「東部時間」,這是在標準時間比UTC 5小時,比UTC時4小時夏時制有效。

  • en-US(或en_US)表示用戶會說英語,並帶有美國的文化方言(詞彙選擇,數字,日期等)。例如,en-US使用MM/DD/YYYY日期格式,en-GB使用DD/MM/YYYY日期格式,但我們都稱第一個月爲「1月」,而es-MX稱其爲「enero」的第一個月。

我很可能是一個講英語的美國人訪問日本,因此我的時區是Asia/Tokyo即使我的地方仍然是en-US

另外:連字符(-)是將區域設置標識符中的語言和國家/地區代碼分開的正確字符。儘管一些實現已經用IETF語言標籤規範替代了下劃線(_),this is not correct