向用户显示可选择时区的好方法是什么?


What are good ways to present selectable timezones to the user?

是否真的有必要允许用户从PHP的timezone_identifiers_list()返回的任何时区中选择?有大量的时区,由于有太多的选项,HTML下拉菜单在某些系统上相当滞后。我知道我可以手动生成常见的美国时区,如太平洋、东部、中部等。但是有没有一个常用的国际时区列表呢?我所说的"普遍"是指如果我使用该列表,那么它将获得99.9%的国际用户基础。这似乎是多余的,必须包括每个可能的时区作为一个选项给用户。有没有人对时区的最佳实践有什么想法?

你可以有很多不同的方法。
我想说的最好的是我们PHP的timezone_identifiers_list()
但是不要做一个下拉列表,而是做两个下拉列表。

  1. 下拉框应包含区域(欧洲、亚洲、印度等)
  2. 下拉框应包含所选区域的城市。

然后你应该使城市的下拉框成为一个可搜索的字段,这样一个人可以写一些城市的名字,它只显示城市,包括他所写的。(正如@dam660建议的那样,在这里选择是一个不错的选择)
这样你就可以覆盖所有的时区,而且看起来也不会很乱。

是否真的有必要允许用户从PHP的timezone_identifiers_list()返回的任何时区选择?

不,为什么用户要为此烦恼呢?处理不同时区的一种做法是将所有内容存储为数据库中的unix时间戳。然后,当您显示它时,使用一点javascript将其转换为用户的时区相关日期和时间。

如果我使用这个列表,那么它将捕获99.9%的国际用户群

你知道99.9%的国际用户群来自哪里吗?然后你可以自己组装这个列表。

或者您可以根据其他信息(例如用户所在的城市或国家)建议一个时区。您可以尝试使用GeoIP来确定他的位置(但要小心代理)。

将列表分成两个列表(大洲和位置),根据建议预先选择。