Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 半小时时区缺失_Php_Date - Fatal编程技术网

Php 半小时时区缺失

Php 半小时时区缺失,php,date,Php,Date,在PHP中,我使用DateTimeZone::listIdentifiers()获取时区列表供用户选择。这似乎很好,但这张列表中缺少了半小时时区 特别是纽芬兰、伊朗和印度。有人知道如何找回他们,为什么他们失踪了?但它们仍然在世界上使用,而且似乎没有列入 有什么想法吗?这里只是猜测一下,但它看起来像默认的$what参数是DateTimeZone::ALL,并且您希望使用仅存在于现在的标识符以实现向后兼容性-因此您应该使用: 注意,这并不是说不要使用它们 例如,在伊朗的情况下,您可以将其替换为亚洲/

在PHP中,我使用
DateTimeZone::listIdentifiers()
获取时区列表供用户选择。这似乎很好,但这张列表中缺少了半小时时区

特别是纽芬兰、伊朗和印度。有人知道如何找回他们,为什么他们失踪了?但它们仍然在世界上使用,而且似乎没有列入


有什么想法吗?

这里只是猜测一下,但它看起来像默认的
$what
参数是
DateTimeZone::ALL
,并且您希望使用仅存在于现在的标识符以实现向后兼容性-因此您应该使用:

注意,这并不是说不要使用它们

例如,在伊朗的情况下,您可以将其替换为亚洲/德黑兰时区。

例如:

纽芬兰时区标识符为
America/St_Johns

[1]


[2]

在浏览420个左右的时区时,我似乎忽略了几个半小时时区。这样做的最终结果是,时区确实存在。在IANA的名单中,他们都改变了自己的历史名字

在IANA如何表示要使用的链接时区和PHP如何实现这两个方面似乎有着微妙的区别,这两个方面现在处于“绝对不是一个bug,但在文档中像泥一样清晰”的领域,并且有一种解决方案

这次Github搜索也让它更加清晰:


所以,他们在那里。我仍然担心可用性,以及我们的用户在寻找时区时是否会理解选择美国/圣约翰等。我们正在与我们的用户就此进行一些研究。

仅供参考,澳大利亚/阿德莱德是一个半小时的补偿区,它在列表中,因此整个半小时的事情不是唯一的cause@RobbieAverill这个问题排在第一位,所以一个是重复的
print_r(DateTimeZone::listIdentifiers(DateTimeZone::ALL_WITH_BC));