Изменение строк часового пояса в date_lang.php

#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 формат.