2014-11-19 1 views
0

У нас есть приложение, которое позволяет пользователям вводить свой часовой пояс вручную (через обычное текстовое поле). Поскольку я не думаю, что это была хорошая идея, я думал о замене этого механизма, показывая раскрывающийся список, в котором перечислены все поддерживаемые временные интервалы PHP (с помощью DateTimeZone::listIdentifiers()).Преобразовать вручную введенный часовой пояс PHP в «действительный» один

Однако я не уверен, как преобразовать пользовательский ввод (например, «GMT» или другие временные интервалы, перечисленные здесь: http://php.net/manual/en/timezones.others.php) в часовой пояс, который указан в результате функции listIdentifiers().

Любые предложения?

Спасибо!

ответ

1

Я не уверен, что вы пытаетесь сделать. Сначала вы пишете, что у вас есть текстовый ввод и хотите заменить его на selectbox, но, наконец, вы хотите преобразовать значение из ввода текста? : Р

Если у вас есть значение от переключателя с правильным идентификатором, вы можете просто создать новый объект DateTimeZone с именем в качестве аргумента, как это:

new DateTimeZone($str); 

После этого вы можете сделать что-нибудь с ним.

+0

Извините, что не ясны. На данный момент пользователи уже ввели свои временные метки вручную, но я хотел бы принять их вход и «преобразовать» их в значение, которое можно сопоставить с новым часовым поясом, поэтому оно будет отображаться в раскрывающемся списке правильно. – Catalyst

+1

Ну, единственное решение, которое я вижу здесь, это передать строку, которую они ввели в конструктор DateTimeZone, в try .. catch block и on exception (если зона не существует), просто установите значение по умолчанию или установите значение null. – Lashus

+0

Да, я просто понял это, и я также нашел «DateTimeZone :: ALL_WITH_BC», который я могу использовать. Благодаря! :) – Catalyst

Смежные вопросы