gpt4 book ai didi

PHP 时区转换器

转载 作者:太空宇宙 更新时间:2023-11-03 12:20:21 25 4
gpt4 key购买 nike

在 PHP 中,您可以使用一行简单的代码更改时区

date_default_timezone_set('Europe/London');

我遇到的问题是制作基于用户的时区更改器。我想让用户使用带有时区选项的下拉框,并使用 MySQL 将其保存在用户的数据变量中。我的问题与 PHP 如何处理时区有关,特别是与赋予每个变量的名称有关。具有如下名称的时区已经够令人困惑了。

  • 欧洲/伦敦
  • 亚洲/上海
  • 美国/道森

这不是唯一的问题,不同时区名称的数量达到了数百个。我不确定要使用那数百个,因为我显然不能全部使用它们,因为那样会有点多余且效率低下。我会使用像 GMT+5 或 GMT-1 这样的时区,但是 PHP manual说我不应该使用它们,从我读到的内容来看,它们不支持夏令时。我想知道我应该怎么做才能获得适合我的目的的时区列表。或者,如果有人足够友善,他们可以将我转到我可以使用的列表。

我正在寻找任何可以涵盖大多数时区的列表。

TL;DR 我需要帮助来确定将哪些时区用于时区投递箱。

最佳答案

如果您为每个用户存储一个时区字符串(例如“欧洲/伦敦”),您可以将传入时间转换为 UTC,然后在显示时重新转换它们。一旦你弄明白了,这就很容易了:

    $previoustz = date_default_timezone_get();
@date_default_timezone_set( $users_chosen_timezone );
/* do your time processing here */
@date_default_timezone_set( $previoustz );

您必须始终遵守纪律,否则您的系统会显示一些错误的时间错误。

至于提供什么时区的问题,我强烈建议你提供PHP提供的整个列表。您只需在用户配置文件屏幕中收集用户的时区设置,这样您就不会经常用长长的下拉列表来烦扰用户。

您出于某些原因需要它们。其一是美国时区的普遍怪异,一些地方司法管辖区在夏令时时做一些奇怪的事情。查看美国/印第安纳州。这来自立法机构曾经将 π 的值规定为 3 的状态。你想弄清楚这一切吗?我不这么认为。

第二个原因是:一些司法管辖区在难以自动化的日期来回切换夏令时。例如,以色列国根据希伯来历进行切换。您希望您的用户只需选择他们的时区。

另一个是:使用 WordPress 等全局系统的人们已经开始期待标准的选择集,这些选择基于一个名为 timezoneinfo 的古老的 Unix/Linux 系统。如果你只是遵循标准,你可以让 timezoneinfo 的人来处理你应该提供的选择。这是一个国际电子政治问题,timezoneinfo 为您处理的比您希望的要好得多。

看看http://www.php.net/manual/en/datetimezone.listidentifiers.php获取列表的方法。

关于PHP 时区转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20375117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com