PHP列表日期为ABBR月份

时间:2012-03-28 20:11:15

标签: php

我的代码在某个地方出现了打嗝并且语法错误所以我的日期不起作用 某种原因。我很确定它的语法缺陷与strtotime。我不认为它 像我想的那样使用我的整数。有人可以看看,告诉我如何解决 此?

    <td> 
        <select name="bday[month]" id="bday[month]">
            <?php foreach( range(1,12) as $month) { echo "<option value='$month'>".date('M', strtotime($month))."</option>\r\t\t\t"; } ?>
        </select>

        <select name="bday[day]" id="bday[day]">
            <?php foreach( range(1,31) as $day) { echo "<option value='$day'>$day</option>\r\t\t\t"; } ?>
        </select>

        <select name="bday[year]" id="bday[year]">
            <?php foreach( range(date('Y')-13, 1900) as $year) { echo "<option value='$year'>$year</option>\r\t\t\t"; } ?>
        </select>
    </td>

3 个答案:

答案 0 :(得分:0)

strtotime()需要的不仅仅是月份数字。

我建议改为使用mktime()

for ($i = 1; $i <= 12; ++$i) {
    echo '<option value="' . $i . '">' . date('M', mktime(0, 0, 0, $i)) . '</option>';
}

答案 1 :(得分:0)

你说你正在传递strtotime一个整数参数。你应该传递一个字符串。 :)

http://php.net/manual/en/function.strtotime.php

答案 2 :(得分:-1)

<td> 
    <select name="bday[month]" id="bday[month]">
        <?php foreach( range(1,12) as $month) { echo "<option value='$month'>".sprintf("%02d", $month)."</option>\r\t\t\t"; } ?>
    </select>

    <select name="bday[day]" id="bday[day]">
        <?php foreach( range(1,31) as $day) { echo "<option value='$day'>$day</option>\r\t\t\t"; } ?>
    </select>

    <select name="bday[year]" id="bday[year]">
        <?php foreach( range(date('Y')-13, 1900) as $year) { echo "<option value='$year'>$year</option>\r\t\t\t"; } ?>
    </select>
</td>