簡體   English   中英

將時區偏移轉換為名稱

[英]Converting Timezone Offset into Name

我使用Javascript來存儲用戶當前的GMT偏移時區,我想將其轉換為PHP時區名稱。

如果我有一個說“300”或“-200”的偏移,我怎么能把它轉換成php時區名?

謝謝!

不幸的是,我剛才遇到了你的問題,所以答案似乎有點遲了,但不過我發布了它。

你絕對可以將時間偏移轉換為時區名稱。 基本上這是由以下代碼行執行的:

$zoneName = timezone_name_from_abbr('', $offset*3600);

其中$offset是以小時為單位的時間偏移量。 由於PHP中存在一些已知的錯誤/特性,這種簡化方法在某些條件下可能會失敗,因此有一個帶有解決方法的擴展包裝器,可以在php.net站點上找到。 除此之外,包裝器也支持夏令時標志。

實際上,正如@zerkms在他的回答中所指出的,時間偏移和時區名稱之間沒有一對一的關系,因為幾個時區通常共享相同的偏移量。 此函數返回與給定偏移量對應的第一個找到的時區。 哪一個完全是第一個,不是預定義的。

但無論如何,此功能非常便於通過date_default_timezone_set為用戶會話設置首選時區,該時區僅接受時區標識符,但用戶可能會在Web UI中顯示時間偏移。 只要我們知道時間偏移是正確的,我們不關心使用哪個標識符(幕后)。

根據定義,這是不可能的。

幾個時區可能具有相同的偏移量(並且還取決於一年中的時間)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM