function months(){
for($i=1;$i<=12;$i++)
if($i<10) {
echo '<option value="'."0".$i.'">'."0".$i.'</option>';
}
else{
echo '<option value="'.$i.'">'.$i.'</option>';
}
}
这会使用01, 02, 03...
而非1, 2, 3...
所以,我联合0
和$i
if $i<10
并且它有效,但也许可以将$i
格式化为两位数或类似的更短的方法?
答案 0 :(得分:5)
您不希望值本身是两位数,只是显示。
echo '<option value="' . $i . '">' . sprintf('%02d', $i) . '</option>';
答案 1 :(得分:3)
您可以使用str_pad
$str = str_pad($i, 2, "0", STR_PAD_LEFT);
答案 2 :(得分:2)
function months() {
for ($i = 1; $i <= 12; $i ++) {
$number = sprintf("%02d", $i);
echo '<option value="' . $number . '">' . $number . '</option>';
}
}
答案 3 :(得分:2)
像这样使用str_pad -
function months(){
for($i=1;$i<=12;$i++) {
echo '<option value="'.str_pad($i,2,"0",STR_PAD_LEFT).'">"'.str_pad($i,2,"0",STR_PAD_LEFT).'</option>';
}
}
答案 4 :(得分:2)
通过添加另一个变量,您可以将其缩短为:
function months(){
for($i=1;$i<=12;$i++)
$mo = ($i<10) ? "0".$i : $i;
echo '<option value="'.$i.'">'.$mo.'</option>';
}
}