9

重複の可能性:
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>';

これはこれを作成しています:

<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>

これどうやってするの?

4

3 に答える 3

27

sprintf("%02d", $number)文字列の書式設定に使用できます。

編集:フォーマット文字列の詳細については、 http ://www.php.net/manual/en/function.sprintf.php を参照してください。

于 2013-02-01T12:00:33.330 に答える
16

ユーザー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>';
于 2013-02-01T12:01:53.443 に答える
5

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>';
}
于 2013-02-01T12:03:06.993 に答える