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


Convert manually entered PHP timezone to a "valid" one

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

但是,我不确定如何将用户输入(如"GMT"或此处列出的其他时区:http://php.net/manual/en/timezones.others.php)转换为作为listIdentifiers()函数结果列出的时区。

有什么建议吗?

谢谢!

我不确定你想做什么。首先,您正在编写您有一个文本输入并希望将其替换为选择框,但最后您想从文本输入转换值?:p

如果你有一个来自选择框的值,带有正确的标识符,你可以创建一个新的日期时区对象,名称作为参数,如下所示:

new DateTimeZone($str);

之后,您可以用它做任何事情。