2013-10-24 2 views
0

Я хочу добавить все месяцы за один раз, без ввода их вручную. Поскольку месяцев имеют числовое значение (1 - 12) я думал, что это будет легко сделать это следующим образом:Использование циклов для добавления параметров в пределах выбора PHP

$monthsel = $form->add(new jqmSelect('month', 'month', ''), true); 
for ($i=1; $i<=12; $i++){ 
    $month = strtotime("F", $i); 
    $monthsel->add(new jqmOption("$month", $month, false)); 
    $monthsel->attribute('data-native-menu','false'); 
} 

Однако месяц получает отображается внутри выбора, как это:

21601 
21602 
21603 
21604 
21605 
21606 
21607 
21608 
21609 
21610 
21611 
21612 

Я считаю, что это метка месяца?

Ну, независимо от того, что это такое, мне хотелось бы, чтобы полное имя месяца появлялось внутри Select.

+1

Какой класс является переменной $ образуют экземпляр? Каков класс jqmSelect? Как вы делаете результат? Пожалуйста, обратите внимание и сообщите подробности, задавая вопросы, на которые невозможно ответить. – Lepidosteus

+2

um. im используя jqmphp. Его генератор html. Это не должно зависеть от того, почему у меня проблема с датой. Поэтому на этот вопрос можно ответить. –

+2

Вы задаете вопрос о том, почему что-то не отображается так, как вы хотите, и считаете, что библиотеки, которые вы используете для создания рендеринга, «не должны влиять на то, почему он работает так, как он работает»? Тогда мне жаль говорить, что вы ошибаетесь. Предоставьте хотя бы ссылку на библиотеку jqm и соответствующую часть вашего кода рендеринга. – Lepidosteus

ответ

1

Это не работает, потому что strtotime ожидает отметки времени. $i не является меткой времени, и поэтому strtotime увидит это как 1 секунду. Поэтому лучше всего было бы сделать что-то такое, как:

strtotime("F", date('Y-' . $i . '-m'));

Это лишь один из многих был для достижения этой цели. Вы также могли бы иметь массив, как:

$months_array = array('January', 'Feburary', ...);

делание:

$month = $months_array[$i - 1];

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