#codeigniter #date #timezone
#codeigniter #Дата #Часовой пояс
Вопрос:
CodeIgniter сохраняет часовые пояса для своего класса date в
system/language/english/date_lang.php
Я хотел бы изменить строки в этом файле, чтобы
$lang['UM12'] = '(UTC -12:00) Baker/Howland Island';
$lang['UM11'] = '(UTC -11:00) Samoa Time Zone, Niue';
вместо этого было бы
$lang['-12:00'] = '(UTC -12:00) Baker/Howland Island';
$lang['-11:00'] = '(UTC -11:00) Samoa Time Zone, Niue';
Возможно ли это вообще?
Любое изменение, которое я вношу в UM__
часть одной строки, приводит к тому, что она отображается в раскрывающемся списке как пустая. Остальные (неизмененные) строки отображаются нормально.
Я также пытался клонировать этот файл в application/language/english/
с аналогичными плохими результатами.
Есть идеи по этому поводу?
Ответ №1:
Похоже, что для этого потребуется взломать date_helper.php
файл, чего я не хочу делать.
Вместо этого класс date в CI имеет timezones()
функцию, которая позволяет вам преобразовывать, например, из UM5
в -5
. В этом случае можно обернуть эту функцию вокруг U__
значения, поступающего из представления / выпадающего списка, а затем сохранить его в DB как -5
или какой-либо другой INT
.
Поскольку я хочу показать пользователю выбранный им часовой пояс в том же выпадающем списке, я вынужден использовать поля базы данных для форматов U__
и INT
часового пояса. Насколько я знаю, нет функции CI для преобразования из -5
в UM5
.
Итак, для пользователя я извлекаю U__
формат в представление, чтобы автоматически заполнить выпадающий список.
Для преобразования часовых поясов и тому подобного я использую INT
формат.