У нас есть приложение, которое позволяет пользователям вводить свой часовой пояс вручную (через обычное текстовое поле). Поскольку я не думаю, что это была хорошая идея, я думал о замене этого механизма, показывая раскрывающийся список, в котором перечислены все поддерживаемые временные интервалы PHP (с помощью DateTimeZone::listIdentifiers()
).Преобразовать вручную введенный часовой пояс PHP в «действительный» один
Однако я не уверен, как преобразовать пользовательский ввод (например, «GMT» или другие временные интервалы, перечисленные здесь: http://php.net/manual/en/timezones.others.php) в часовой пояс, который указан в результате функции listIdentifiers().
Любые предложения?
Спасибо!
Извините, что не ясны. На данный момент пользователи уже ввели свои временные метки вручную, но я хотел бы принять их вход и «преобразовать» их в значение, которое можно сопоставить с новым часовым поясом, поэтому оно будет отображаться в раскрывающемся списке правильно. – Catalyst
Ну, единственное решение, которое я вижу здесь, это передать строку, которую они ввели в конструктор DateTimeZone, в try .. catch block и on exception (если зона не существует), просто установите значение по умолчанию или установите значение null. – Lashus
Да, я просто понял это, и я также нашел «DateTimeZone :: ALL_WITH_BC», который я могу использовать. Благодаря! :) – Catalyst