要在下拉列表中列出月份,请使用php函数
<select name="month" class="span3">
<?php
for($m = 1;$m <= 12; $m++){
$month = date("F", mktime(0, 0, 0, $m));?>
<option value="<?php echo $m; ?>"><?php echo $month; ?></option>
<?php } ?>
</select>
当我今天(即31-07-2013)检查其显示月份时,工作正常
<select class="span3" name="month">
<option value="1">January</option>
<option value="2">March</option>
<option value="3">March</option>
<option value="4">May</option>
<option value="5">May</option>
<option value="6">July</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">October</option>
<option value="10">October</option>
<option value="11">December</option>
<option value="12">December</option>
</select>
当我将日期格式检查为('Y-m-d')
时显示该月份的第一个和最后一个日期,而不显示二月份显示2013-03-03
。当我将mktime函数修改为mktime(0, 0, 0, $m,1,2013)
时,结果与预期一样正确。当我在php中使用mktime()
或date()
函数时,我需要寻找什么。
答案 0 :(得分:5)
添加第5个参数来解决此问题。
$month = date("F", mktime(0, 0, 0, $m, 1));
这是第31天,只有上述月份有31天。
为了澄清会发生什么,第5个参数的默认值是当天。你传递的数字高于那个月的天数,它会翻到下个月。
答案 1 :(得分:2)
您必须在day
函数中传递第5个参数mktime
。
for($m = 1; $m <= 12; $m++){
$month = date("F", mktime(0, 0, 0, $m, 1));
echo $month;
}
小于1的日期(包括负值)参考上个月的日期。