Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.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_Datetime_Timezone - Fatal编程技术网

将手动输入的PHP时区转换为";“有效”;一

将手动输入的PHP时区转换为";“有效”;一,php,datetime,timezone,Php,Datetime,Timezone,我们有一个应用程序,允许用户手动输入时区(通过常规文本框)。 因为我认为这不是一个好主意,所以我正在考虑通过显示一个下拉列表(使用DateTimeZone::listIdentifiers())来替换这个机制,该列表列出了所有受支持的PHP时区 但是,我不知道如何将用户输入(如“GMT”或此处列出的其他时区:)转换为作为listIdentifiers()函数结果列出的时区 有什么建议吗 谢谢大家! 我不知道你想做什么。首先,您编写了一个文本输入,并希望将其替换为selectbox,但最后您希望转

我们有一个应用程序,允许用户手动输入时区(通过常规文本框)。 因为我认为这不是一个好主意,所以我正在考虑通过显示一个下拉列表(使用
DateTimeZone::listIdentifiers()
)来替换这个机制,该列表列出了所有受支持的PHP时区

但是,我不知道如何将用户输入(如“GMT”或此处列出的其他时区:)转换为作为listIdentifiers()函数结果列出的时区

有什么建议吗


谢谢大家!

我不知道你想做什么。首先,您编写了一个文本输入,并希望将其替换为selectbox,但最后您希望转换文本输入的值:p

如果selectbox中的值具有正确的标识符,则只需创建一个新的DateTimeZone对象,并将名称作为参数,如下所示:

new DateTimeZone($str);

在那之后,你可以用它做任何事情。

对不起,我不清楚。到目前为止,用户已经手动插入了他们的时区,但我想将他们的输入“转换”为一个可以映射到新时区的值,这样它就会正确地出现在下拉列表中。我在这里看到的唯一解决方案是在try中将他们输入的字符串传递给DateTimeZone构造函数。。catch块和on异常(如果区域不存在)只需设置默认值或设置null。是的,我刚刚解决了这个问题,我还找到了“DateTimeZone::ALL_WITH_BC”,我可以使用它。谢谢!:)