如何将整数格式化为两位数?

时间:2013-09-01 11:50:30

标签: php

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格式化为两位数或类似的更短的方法?

5 个答案:

答案 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>';
    }
}