Komt omdat je in PHP met integers werkt en daar horen geen voorloopnullen bij. De voorloopnul is enkel iets dat met de output te maken heeft, en pas daar ga je het ook toepassen:
<?php
$int = 1;
echo sprintf('%02d', $int);
?>
Link gekopieerd
Ik wil een geboortedatum in de database zetten.
In een date veld wel te verstaan.
Hebben jullie een betere oplossing dan mijn code ?
<select name="dag">
<?php
for($i = 01; $i <= 31; $i++) {
echo '<option value="'.PHP_EOL;
echo $i;
echo '">'.PHP_EOL;
echo $i;
echo '</option>'.PHP_EOL;
}
?>
</select>
<select name="maand">
<option value="01">Januari</option>
<option value="02">Februari</option>
<option value="03">Maart</option>
<option value="04">April</option>
<option value="05">Mei</option>
<option value="06">Juni</option>
<option value="07">Juli</option>
<option value="08">Augustus</option>
<option value="09">September</option>
<option value="10">Oktober</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<select name="jaar">
<?php
$vandaag = getdate();
$jaar = $vandaag['year'];
for($i = $jaar; $i >= 1960; $i--) {
echo '<option value="'.PHP_EOL;
echo $i;
echo '">'.PHP_EOL;
echo $i;
echo '</option>'.PHP_EOL;
}
?>
Link gekopieerd
Op zich is dat een hele goede manier RedCrew, vergeet alleen niet te controleren of het wel een geldige datum is, wanneer je de boel in je database op wil slaan.
Zelf gebruik ik eigenlijk ook zoiets, maar waarom haal je het jaar zo raar op?
$jaar = date('Y');
Dat doet het in 1 regel :)
Link gekopieerd
dit is alleen het form gedeelte.
Voor de input in de database komt er nog een controle.
Waarom ik hte jaar zo raar ophaal. Ik heb mijn kennis compleet uit zelfstudie.
Maar ik heb ondertussen weer wat bijgeleerd :)
$jaar = date('Y');
Link gekopieerd
Die for loop is ook iets omslachtig. Dit is wat eleganter:
<?php
foreach (range (date('Y'), 1960) as $jaar) {
echo PHP_EOL;
echo '<option value="'.$jaar.'">'.$jaar.'</option>';
}
?>
Link gekopieerd