Создание выпадающего списка месяцев и годов с помощью PHP

Бывают случаи, когда необходимо динамически создать выпадающие списки с месяцем и годом при помощи PHP и select. Я использовал этот код во многих ваших проектах. И в данной статье я поделюсь ним с вами.

Создание выпадающего списка годов

Создать выпадающий список годов чрезвычайно просто. Задайте первое и последнее значение диапазона, и наш массив готов. Сейчас просто переберите его через цикл:

<?php// устанавливаем первый и последний год диапазона$yearArray = range(2000, 2050);?><!-- выводим выпадающий список --><select name="year"> <option value="">Выберите год</option> <?php foreach($yearArray as $year) { // если вы планируете выбрать конкретный год $selected =($year == 2015)? 'selected': ''; echo '<option '.$selected.' value="'.$year.'">'.$year.'</option>'; }?></select>

Создание выпадающего списка месяцев

Существуют два метода, при помощи которых можно без проблем создать PHP выпадающий список select с месяцами. В первом мы определяем переменную массива PHP со списком всех месяцев и обрабатываем ее через цикл, и выводим выпадающее меню. Код следующий:

<?php// устанавливаем массив месяцев$formattedMonthArray = array(                    "1" => "January", "2" => "February", "3" => "March", "4" => "April",                    "5" => "May", "6" => "June", "7" => "July", "8" => "August",                    "9" => "September", "10" => "October", "11" => "November", "12" => "December",);?><!-- выводим выпадающий список --><select name="month">    <option value="">Выберите месяц</option>    <?php foreach($monthArray as $month) {        // если вы хотели бы выбрать конкретный месяц        $selected =($month == 5)? 'selected': '';        // если вы хотели бы добавить перед номером месяца дополнительный 0, раскомментируйте строку ниже        //$month = str_pad($month, 2, "0", STR_PAD_LEFT);        echo '<option '.$selected.' value="'.$month.'">'.$formattedMonthArray[$month].'</option>';    }   ?></select>

Другой метод сложнее, так как в нем используется функцию PHP , а не статический массив месяцев:

<?php$monthArray = range(1, 12);?><select name="month">    <option value="">Выберите месяц</option>    <?php foreach ($monthArray as $month) {        // добавление дополнительного ноля        $monthPadding = str_pad($month, 2, "0", STR_PAD_LEFT);        // вы можете без труда использовать любой год, который захотите        // вы можете без проблем использовать 'M' или 'F' в виде предпочтительного формата        $fdate = date("F", strtotime("2015-$monthPadding-01"));        echo '<option value="'.$monthPadding.'">'.$fdate.'</option>';    }    ?></select>

Если у вас есть предложения по оптимизации кода PHP select , напишите об этом в комментариях.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *