How do I start a for-loop with 01
as opposed to 1
? I've tried the below, but it doesn't seem to work.
for ($i = 01; $i <= 12; $i++) {
echo "<option value='$i'";
if ($i == $post_response[expiremm]) {
echo " selected='selected'";
}
$month_text = date("F", mktime(0, 0, 0, $i+1, 0, 0, 0));
echo ">$month_text</option>";
}
You can't really start an integer at 01, you will need to pad the value, probably using str_pad
to prefix leading elements to a string:
$value = $i;
if ($i < 10) {
$value = str_pad($i, 2, "0", STR_PAD_LEFT);
}
Note that for different unit types you will obviously need to alter the desired pad_length
.
01
is the octal number 1
(which is equivalent to the decimal 1
in this case). Since you want to format the output to have two digits for the number, consider using printf
:
printf("<option value='%02d'", $i);
%
marks the start of a conversion0
means "pad the string with zero"2
means "the replacement should have a minimum length of 2"d
means "the argument is an integer"References:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With