在PHP Web应用程序中构建时区功能

Sab*_*bya 3 php mysql timezone

这几乎与这个问题相似: -

处理PHP中的时区

我读了那个帖子,还有一些问题,并且不确定如何在PHP/MySQL应用程序中优雅地构建时区支持.

我正在用PHP编写应用程序,用户可以在其中选择时区.

这里,所有时间戳都存储在MySQL中的GMT中.我在呈现数据时将时区转换回用户时区.

现在这些是我面临的问题: -

1)我向用户展示了一个从MySQL的时区表填充的时区列表,它是一个巨大的列表,很难从中选择.

所以,我想实现类似windows时区列表的东西.抵消区域信息.

2)PHP和MySQL可能有不同的列表集.

3)我应该在哪里转换时区,PHP或MySQL?我有编码的组合.有时很容易选择从MySQL转换的列,有时很容易在PHP中转换.所以,这里前一点变得非常重要.例如,在MySQL的time_zone表中,亚洲/加尔各答和亚洲/加尔各答都在那里,但在PHP 5.2.6的默认timezonedb中,只存在亚洲/加尔各答.

Fra*_*mer 5

当遇到这个问题时,我发现了这个引用,它将简洁的Windows风格的时区列表映射到了一个非常详尽的Unix风格时区列表的子集.

向用户呈现这些窗口式名称的下拉列表(例如,(GMT-05:00)东部时间(美国和加拿大)),并且他们的选择以unix样式格式存储在数据库中(例如America/New_York) )

应用用户时区首选项的工作是在显示时使用DateTime类在PHP中完成的.我想我会推荐这个,所以你可以确信你在SQL/PHP中操作的日期始终是UTC,直到它们显示出来.