Finns många sätt, men kanske det för människan mest logiska passar bäst här:
if ($num < 10)
echo "<option value=\"$num\">0$num</option>";
else
echo("<option value=\"$num\">$num</option>";
6 svar · 446 visningar · startad av streetrobban
Tjenare, jag loopar ut år etc. med hjälp av nedanstående kod. Men jag undrar hur man får scriptet att skriva ut 01 istället för 1?
<select name="MonthOfBirth" style="width: 55; height: 19; margin-top: 3;">
<option value="" selected="selected">MM</<option>
<?php
$num = 1;
while ($num <= 12)
{
echo "<option value=\"$num\">$num</option>";
$num++;
}
?>
</select>
Finns många sätt, men kanske det för människan mest logiska passar bäst här:
if ($num < 10)
echo "<option value=\"$num\">0$num</option>";
else
echo("<option value=\"$num\">$num</option>";
Jag kanske var lite otydlig. Jag vill alltså att 1 ska bli 01. Men 12 ska inte bli 012, utan 12.
streetrobban skrev:
Jag kanske var lite otydlig. Jag vill alltså att 1 ska bli 01. Men 12 ska inte bli 012, utan 12.
Testade du inte Tydals lösning?
Ahh sorry, jag tänkte inte längre än vad näsan räckte. Och när jag är trött krymper min näsa.
Följande kod löste problemet. Tack tydal :)
<?php
$month = 1;
while ($month <= 12)
{
if ($month < 10)
{
echo "<option value=\"$month\">0$month</option>";
$month++;
}
else
{
echo "<option value=\"$month\">$month</option>";
$month++;
}
}
?>
Annars kan du använda s/printf för lite kompaktare kod:
<?php
for ($month = 1; $month <= 12; $month++)
printf('<option value="%d">%02d</option>', $month, $month);
?>
Finns många sätt, själv skulle jag använt mig av str_pad()
<?php
for ($month = 1; $month <= 12; $month++)
echo "<option value=\"$month\">".str_pad($month, 2, "0", STR_PAD_LEFT)."</option>\n";
?>