-2
<select name="month" id="month" >
    <option value="">Select</option>
    <?php

    for ($i = 0; $i < 12;   $i++) {
    $date_str = date('M', strtotime("+ $i months"));
    echo "<option value=$i>".$date_str ."</option>";

    } ?>
    </select>

当我从 0 开始运行此代码值时,我想从 1 开始

例如:一月的值应该是“1”。这怎么可能 ?

4

3 回答 3

3

通过在输出前向每个月的数字添加一 (1)。

for( $i = 0; $i < 12; $i++ )
{
    $date_str = date( 'M', strtotime('+ $i months') );
    echo sprintf( '<option value="%d">%s</option>', $i + 1, $date_str );
}

顺便说一句:HTML 属性应该用引号来写,以防止空格导致失败。

于 2013-01-07T12:05:45.560 回答
2
<select name="month" id="month" >
<option value="">Select</option>
<?php

for ($i = 0; $i < 12; ) {
$date_str = date('M', strtotime("+ $i++ months"));
echo "<option value=$i>".$date_str ."</option>";

} ?>
</select>

将 ++ 移到 strtotime 函数之后但显示之前将起作用。您需要将 for 的最后一部分留空才能正常工作

于 2013-01-07T12:10:28.090 回答
0

对于 ($i = 1; $i <= 12; $i++)

于 2013-01-07T12:07:06.003 回答