什么';s是存储用户的最佳方式';PHP中分组的时区


what's the best way to store users' timezone in groups in PHP?

我正在从事一个项目,在该项目中,具有不同时区的多个用户的时间精度极其重要。

我知道要存储的时区的最准确表示是其标识符(例如"欧洲/布达佩斯")

但是使用"DateTimeZone::listAbstrations()"answers"DateTimeZone::listIdentifiers()",我得到了408个时区(城市),这对于在选择框中使用来说不是很友好。

为了让它对用户更友好,我需要将它们放在一组时区中,在这些时区中,它们共享相同的偏移量和夏令时。

我不能根据"偏移"对它们进行分组,因为它们会随着夏令时或"时区缩写"(如AST)的变化而变化,后者可能包含多个偏移的元素。

我看到的网站也对时间非常敏感,但它们以非常用户友好的方式分组提供时区选择,我想知道它们是如何分组的,还是为了用户友好而牺牲准确性?。

有没有一种我不知道的方法可以做到这一点?

"best"是非常主观的,但我在下拉列表中看到过很多不同的方式,它们都很容易混淆。

我的建议是考虑使用基于地图的时区选择器。用户不需要知道任何关于时区的信息,只需点击地图上的位置即可。

有几种可用的控件,但我最喜欢的是这个控件,它主要是JavaScript。它应该非常适合基于PHP的解决方案。