php
2013-02-01 66 views 1 likes 
1

可能重複:
Formatting a number with leading zeros in PHPPHP顯示01,而不是1

我填充用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> 

我怎樣才能做到這一點?

+3

你知道['sprintf'(http://php.net/manual/en/function.sprintf.php)?嘗試echo'sprintf('%02d',1);' – Jon

+2

請參閱這裏:http://stackoverflow.com/questions/1699958/formatting-a-number-with-leading-zeros-in-php – FreudianSlip

+0

您使用tenary顯示'selected',它也可以用於選項值:'(strlen($ x)== 1?'0'。$ x:$ x)' – rlatief

回答

3

用戶str_pad裁判更多信息,請參閱http://www.php.net/manual/en/function.sprintf.phphttp://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>'; 
+0

您的代碼有語法錯誤。仔細檢查下一次從某處複製一行;) – Lix

+1

對不起,我編輯它:) –

11

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

編輯:有關格式字符串

2

您可能需要使用您的循環中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>'; 
} 
相關問題