如何使用01
而不是1
启动for循环?我已经尝试了下面的内容,但它似乎没有用。
for ($i = 01; $i <= 12; $i++) {
echo "<option value='$i'";
if ($i == $post_response[expiremm]) {
echo " selected='selected'";
}
$month_text = date("F", mktime(0, 0, 0, $i+1, 0, 0, 0));
echo ">$month_text</option>";
}
答案 0 :(得分:8)
你真的不能在01开始一个整数,你需要填充这个值,可能使用str_pad
将前导元素加到字符串前面:
$value = $i;
if ($i < 10) {
$value = str_pad($i, 2, "0", STR_PAD_LEFT);
}
请注意,对于不同的单位类型,您显然需要更改所需的pad_length
。
答案 1 :(得分:4)
01
是八进制数1
(在这种情况下相当于十进制1
)。由于您希望格式输出的数字有两位数,请考虑使用printf
:
printf("<option value='%02d'", $i);
%
标志着转化的开始0
表示“将字符串填充为零”2
表示“替换的最小长度为2”d
表示“参数是整数”参考文献:
答案 2 :(得分:0)
PHP将01解析为整数,因此它将变为1.您不能迭代像'01'这样的字符串,因此您必须稍后在代码中编辑$ i的值。
如果您稍后需要01,则可以使用填充。 http://php.net/manual/en/function.str-pad.php
答案 3 :(得分:0)
for($ i = 01; $ i&lt; = 12; $ i ++){
$value = strlen($i);
if($value==1){
$k = "0".$i;
}else
{
$k=$i;
}
echo "<option value='$k'";
if ($i == $post_response[expiremm]) {
echo " selected='selected'";
}
$month_text = date("F", mktime(0, 0, 0, $i + 1, 0, 0, 0));
echo ">$month_text</option>";
}
For循环不能以01开头,所以你可以这样做,如上所示
答案 4 :(得分:0)
for ($i = 1; $i <= 25; $i++) {
echo str_pad($i, 2, "0", STR_PAD_LEFT);
echo "<br/>"; }
它可能对你有所帮助..