php:每次更新tzdata时用户时区都会更改

时间:2012-11-01 07:12:32

标签: php timezone

我们将每个用户的时区保存为该时区的ID。

问题是,每次更新tzdata包时,ID都会发生变化,这会更改用户保存的时区。

有什么方法可以确保用户保存的时区始终保持一致?

谢谢!

1 个答案:

答案 0 :(得分:0)

问题的原因是程序员认为将可用时区列表视为固定列表会更容易,并将用户自己的时区存储为列表中的时区位置。

,即如果欧洲/柏林曾经位于时区列表中的第100位,那么这就是为数据库中的用户存储的数字。但是如果使用新的时区更新了包tzdata,那么在位置100你会对欧洲/贝尔格莱德很好,并且用户实际上会为他们定义错误的时区。

解决方案是将存储的所有旧ID号转换为显示为时区的相关真实字符串。这样,当下次更新tzdata时,用户将保留其当前时区。