在PHP中使用Select输入限制月份和年份

7d7tgy0s  于 2023-10-15  发布在  PHP
关注(0)|答案(1)|浏览(129)

我试图自动化的形式,选择输入有限的月份和年份在PHP中。我无法找到或创建从今天的月份开始跳过月份的算法。
这是我想要的,https://codepen.io/abdullah1929/pen/XWoQNBL
这就是我尝试过的

<?php
ini_set('default_charset', 'UTF-8'); // for some name like Ibañez, Nuñez
date_default_timezone_set('Asia/Singapore');
$start = 2014;
$end = intval(date('Y', time()));
$month = intval(date('m', time()));

?>
<select name="month">

<?php
    for($i = $end; $i >= $start; $i--){

        if($month < (ceil($month/12)+1)){
            continue;
        }
    ?>
    <!-- <option value="december2023">December 2023</option>
    <option value="november2023">November 2023</option>
    <option value="october2023">October 2023</option>-->
        <option value="december<?=$i?>">December <?=$i?></option>
        <option value="november<?=$i?>">November <?=$i?></option>
        <option value="october<?=$i?>">October <?=$i?></option>
        <option value="september<?=$i?>">September <?=$i?></option>
        <option value="august<?=$i?>">August <?=$i?></option>
        <option value="july<?=$i?>">July <?=$i?></option>
        <option value="june<?=$i?>">June <?=$i?></option>
        <option value="may<?=$i?>">May <?=$i?></option>
        <option value="april<?=$i?>">April <?=$i?></option>
        <option value="march<?=$i?>">March <?=$i?></option>
        <option value="february<?=$i?>">February <?=$i?></option>
        <option value="january<?=$i?>">January <?=$i?></option>
    <?php } ?>
</select>

我在这里挣扎了几个小时。谢谢你的帮助

j2qf4p5b

j2qf4p5b1#

使用两个循环。第一个循环是针对当前年份之后的所有年份,它应该打印该年的所有月份。
第二个循环是针对当前年份的,它应该在到达当前月份时停止。

<?php
ini_set('default_charset', 'UTF-8'); // for some name like Ibañez, Nuñez
date_default_timezone_set('Asia/Singapore');
$start = 2014;
$end = intval(date('Y', time()));
$month = intval(date('m', time()));

?>
<select name="month">

<?php
    $months = ['december', 'november', 'october', 'september', 'august', 'july', 'june', 'may', 'april', 'march', 'february', 'january'];
    // later years
    for($y = $end; $y > $start; $y--){
        foreach ($months as $m) { ?>
            <option value="<?= $m.$y ?>"><?= ucfirst($m) . " " . $y ?></option>
            <?php
        }
    }
    // current year
    for ($mnum = 12; $mnum >= $month; $mnum--) { ?>
        <option value="<?= $months[$mnum].$start ?>"><?= ucfirst($months[$mnum]) . " " . $start ?></option>
        <?php
    } ?>
</select>

相关问题