2012-11-01 38 views
1

我們將每個用戶的時區保存爲該時區的ID。php:每次更新tzdata時,用戶的時區更改

問題是,每次更新tzdata軟件包時,ID都會發生變化,這會更改用戶保存的時區。

確保用戶保存時區始終保持一致的方式有哪些?

謝謝!

+0

確切地說,「ID」是什麼意思,你能舉個例子嗎? –

回答

0

問題的原因是程序員認爲將可用時區列表視爲固定列表會更容易,並將用戶自己的時區存儲爲列表中的時區位置。

即,如果歐洲/柏林曾經在時區列表中的位置100處,那麼這是在DB中爲用戶存儲的數字。但是如果軟件包tzdata更新了新的時區,那麼在100的位置你會罰款歐洲/貝爾格萊德,並且用戶實際上會爲他們定義錯誤的時區。

解決方案是將所有存儲的舊ID號轉換爲顯示爲時區的相關的真實字符串。這樣,當下一次更新tzdata時,用戶將保留其當前時區。