gpt4 book ai didi

php - 如何将 PHP 时区字符串(例如 Europe/Berlin)转换为 codeigniter 时区(例如 UP1)

转载 作者:行者123 更新时间:2023-12-05 00:25:20 24 4
gpt4 key购买 nike

简而言之,如果我不得不问这个问题是 just the vice verse of this link question .

我正在使用一个 javscript 库,它会自动检测时区并以 PHP 格式返回时区名称,即 'Europe/Berlin' 格式。

但我使用了 Codeigniters timezone_menu,它给出了 drop down box时区,我想知道如何将这个 php 时区(即 'Europe/Berlin' )转换为 codeigniters 时区格式,即 UP1.?

最佳答案

出现自the CodeIgniter documentation他们将时区视为固定偏移量。他们的约定相当简单:

  • UTC 表示准确 UTC。

  • U 代表UTC

  • MP 减号或加号

  • 描述偏移量的数字

    • 整小时偏移量的单个数字
    • 有半小时偏移时的两位数,但这些偏移很奇怪(你会认为 +05:30 将由 UP55 表示,但实际上是 UP45

那么他们为什么要这样做呢?谁知道。这不是标准的东西,它是 CodeIgnitor 的特殊格式。通常,偏移量仅表示为 +05:30+0530

使用偏移量来表示整个时区与现实不同步。如果有那么简单,那么我们一开始就不需要像 Europe/Berlin 这样的 IANA 时区。可以看到in the time zone list here Europe/Berlin 在 +01:00 和 +02:00 之间交替。 Code Ignitor 可能会说它是 UP1,但那永远不会考虑夏令时偏移。 (世界各地的夏令时都不同,因此您不能只用一个复选框来增加它并期望它是可靠的。)

因此,如果您必须拥有 CodeIgnitor 奇怪的时区表示形式,则采用 IANA 区域的基本偏移量并应用他们的时髦公式(如 dev-null-dweller 所示 in his answer )。只是不要指望它是准确的。

如果您在偏移量为 :45 的区域中,那么您就不走运了。那将是 Pacific/ChathamAsia/Kathmandu

您可以在 the timezone tag wiki 中阅读更多内容在“时区!=偏移量”下

只是为了给这个答案添加一些真正有建设性的东西,我建议不要使用 CodeIgnitor 的时区。坚持使用 IANA 区域 as provided for you by PHP .他们甚至通过 timezondb in the PECL 保持最新状态。 .

关于php - 如何将 PHP 时区字符串(例如 Europe/Berlin)转换为 codeigniter 时区(例如 UP1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18688608/

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