Skip to content
Advertisement

Create Month And Year Dropdown Using PHP

I am looking for dynamically generate Month And Year Dropdown Menu using PHP from Month December 2021 to December 2025. I need it like this

<select>
<option selected="" value="12-2021">December,2021</option>
<option value="1-2022">January,2022</option>
<option value="2-2022">February,2022</option>
<option value="3-2022">March,2022</option>
</select>

I have tried some codes like this

<select name="month" size='1'>
    <?php
    for ($i = 0; $i < 12; $i++) {
        $time = strtotime(sprintf('%d months', $i));   
        $label = date('F', $time);   
        $value = date('n', $time);
        echo "<option value='$value'>$label</option>";
    }
    ?>
</select>

Its work for months but not able to combine it with years and values as per my requirements. I am new in PHP and not getting much idea how I can achieve it, Let me know if anyone here can help me for same. Thanks!

Advertisement

Answer

<?php
    $start    = new DateTime('2021-12-01');
    $end      = new DateTime('2025-12-01');
    $interval = DateInterval::createFromDateString('1 month');
    $period   = new DatePeriod($start, $interval, $end);
?>

<select name="month" size='1'>
    <?php foreach ($period as $dt) 
         echo "<option value= " . $dt->format("Y-m") . ">" . strftime('%B-%Y', $dt->format('U')) . "</option>";
    ?>
</select>
User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement