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

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

Dealing with timezones in PHP

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

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

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

在这些是我面临的问题: –

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

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

2)
PHPMysqL可能有不同的列表集.

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

解决方法:

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

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

应用用户时区偏好的工作是在显示时使用DateTime classPHP中完成的.我想我会推荐这个,所以你可以确信你在sql / PHP中操作的日期总是以UTC为单位,直到他们被展示了.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...