PHP显示01而不是1

Sat*_*000 4 php

可能重复:
在PHP中格式化带前导零的数字

我用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>';
Run Code Online (Sandbox Code Playgroud)

这是创造这个:

<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>
Run Code Online (Sandbox Code Playgroud)

问题是我需要1,2,3等等01,02,03等...像这样:

<option value="01">January</option>
Run Code Online (Sandbox Code Playgroud)

代替:

<option value="1">January</option>
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Mas*_*sse 18

您可以使用sprintf("%02d", $number)格式化字符串.

编辑:有关格式字符串的更多信息,请参见http://www.php.net/manual/en/function.sprintf.php


Pra*_*dra 7

用户str_pad参考:http : //php.net/manual/zh/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>';
Run Code Online (Sandbox Code Playgroud)


Lix*_*Lix 6

您可能想尝试str_pad()在循环中使用该函数:

\n\n
\n

str_pad\xe2\x80\x94 用另一个字符串将一个字符串填充到一定长度

\n
\n\n
for($x = 1; $x <= 12; $x++) {\n  $value = str_pad($x,2,"0",STR_PAD_LEFT);\n  $select_month_control.= \'<option value="\'.$value.\'">\'.$value.\'</option>\';\n}\n
Run Code Online (Sandbox Code Playgroud)\n