将手动输入的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”,我可以使用它。谢谢!:)