我正在使用php填充选择框。
这是代码:
$select_month_control = '<select name="month" id="month">';
for($x = 1; $x <= 12; $x++) {
$select_month_control.= '<option value="'.$x.'"'.($x != $month ? '' : ' selected="selected"').'>'.date('F',mktime(0,0,0,$x,1,$year)).'</option>';
}
$select_month_control.= '</select>';
这是创造这个:
<select id="month" name="month">
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option selected="selected" value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
问题是我需要1,2,3等等01,02,03等......就像这样:
<option value="01">January</option>
而不是:
<option value="1">January</option>
我该怎么做?
答案 0 :(得分:16)
您可以使用sprintf("%02d", $number)
格式化字符串。
编辑:有关格式字符串的详细信息,请参阅http://www.php.net/manual/en/function.sprintf.php
答案 1 :(得分:6)
用户str_pad
参考:http://php.net/manual/en/function.str-pad.php
$select_month_control = '<select name="month" id="month">';
for($x = 1; $x <= 12; $x++) {
$select_month_control.= '<option value="'.str_pad($x, 2, "0", STR_PAD_LEFT).'"'.($x != $month ? '' : ' selected="selected"').'>'.date('F',mktime(0,0,0,$x,1,$year)).'</option>';
}
$select_month_control.= '</select>';
答案 2 :(得分:3)
您可能想尝试在循环中使用str_pad()
函数:
str_pad
- 使用其他字符串将字符串填充到某个长度
for($x = 1; $x <= 12; $x++) {
$value = str_pad($x,2,"0",STR_PAD_LEFT);
$select_month_control.= '<option value="'.$value.'">'.$value.'</option>';
}