在选择框中获得数月

时间:2013-01-07 12:04:33

标签: php loops

<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月的值应为“1”。怎么可能?

3 个答案:

答案 0 :(得分: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属性应该用引号写,以防止由空格引起的失败。

答案 1 :(得分: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的最后一部分留空以使其正常工作

答案 2 :(得分:0)

for($ i = 1; $ i&lt; = 12; $ i ++)