Datum in option tag
Ik heb een probleem om de datum in een option te zetten. Zoals je hieronder misschien ziet, gaat het om de maand.
Code (php)
Echter werkt dit niet zoals ik wil. De 1e optie moet dus de huidige maand worden, bijvoorbeeld september. De 2e optie moet dan oktober worden, november, december ect.
Mocht het nu oktober zijn, moet oktober de 1e optie zijn, en november optie zijn, december 3, januari 4, ect.
Iemand een idee hoe ik dit kan oplossen? En een eventueel voorbeeldje erbij?
Alvast bedankt!
Met vriendelijke groeten,
Bart Roelofs
Hoe wil je een getal en een tekst optellen?
Quote:
date('F')
A full textual representation of a month, such as January or March
January through December
A full textual representation of a month, such as January or March
January through December
Gewijzigd op 30/09/2012 01:05:19 door - SanThe -
Groeten
Bart
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
$months = array(
"januari",
"februari",
"maart",
"april",
"mei",
"juni",
"juli",
"augustus",
"september",
"oktober",
"november",
"december"
);
$today = getdate();
echo "<select name='maand' id='select-maand'>";
for($i = 1 ; $i <= 12 ; $i++) {
$selected = "";
if($i == $today['mon'])
$selected = " selected='selected'";
echo "<option value='$i'$selected>".$months[$i-1]."</option>";
}
echo "</select>";
?>
$months = array(
"januari",
"februari",
"maart",
"april",
"mei",
"juni",
"juli",
"augustus",
"september",
"oktober",
"november",
"december"
);
$today = getdate();
echo "<select name='maand' id='select-maand'>";
for($i = 1 ; $i <= 12 ; $i++) {
$selected = "";
if($i == $today['mon'])
$selected = " selected='selected'";
echo "<option value='$i'$selected>".$months[$i-1]."</option>";
}
echo "</select>";
?>
Het kan zijn dat dit nog niet helemaal is zoals je wil maar dit lijkt mij handig als het om de maanden van één en dezelfde kalenderjaar gaat om het zo te doen
Gewijzigd op 30/09/2012 02:03:51 door Frank Nietbelangrijk
Jouw array is echt wel makkelijker/sneller in dit geval hoor. Daar niet van, maar PHP kent het dus wel.
En waarom niet even met een makkelijkere foreach() alles afwerken?
Inderdaad Eddy, Php kent nederlands dus :). Ik wist dat niet. en een foreach kan natuurlijk ook in dit voorbeeld. Veel wegen leiden naar Rome
i.i.g is $today hier een "assoc" array. Probeer maar eens
(in de bron is het beter leesbaar).
Daarnaast kun je met mktime(); de datum en tijd verschuiven.
zo krijg je met de volgende snippet de eerste en laatste dag van de lopende maand:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$today = getdate();
$firstDay = getdate(mktime(0,0,0,$today['mon'],1,$today['year']));
$lastDay = getdate(mktime(0,0,0,$today['mon']+1,0,$today['year']));
echo "de eerste dag van deze maand is: ".$firstDay['mday']."-".$firstDay['mon']."-".$firstDay['year']."<br/>";
echo "de laatste dag van deze maand is: ".$lastDay['mday']."-".$lastDay['mon']."-".$lastDay['year']."<br/>";
?>
$today = getdate();
$firstDay = getdate(mktime(0,0,0,$today['mon'],1,$today['year']));
$lastDay = getdate(mktime(0,0,0,$today['mon']+1,0,$today['year']));
echo "de eerste dag van deze maand is: ".$firstDay['mday']."-".$firstDay['mon']."-".$firstDay['year']."<br/>";
echo "de laatste dag van deze maand is: ".$lastDay['mday']."-".$lastDay['mon']."-".$lastDay['year']."<br/>";
?>
groeten Frank
Gewijzigd op 30/09/2012 11:02:50 door Frank Nietbelangrijk
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<form action="drop_down_select_month3.php" method="post">
<p><label for="maand">Kies een maand</label><br>
<select name="maand" id="maand" onchange="this.form.submit();">
<?php
if(!isset($_POST['smaand'])){
$smaand = date('m');
}
else{
$smaand = $_POST['smaand'];
};
$maanden = array(1 => 'Jan.', 2 => 'Feb.', 3 => 'Mar.', 4 => 'Apr.', 5 => 'Mei', 6 => 'Jun.', 7 => 'Jul.', 8 => 'Aug.', 9 => 'Sep.', 10 => 'Okt.', 11 => 'Nov.', 12 => 'Dec.'); // afkortingen van maanden
foreach ($maanden as $key => $value):
$selected_m = ($key == $smaand) ? ' selected="selected"' : '';
echo '<option value="' . $key . '"' . $selected_m . ' name="smaand">' . $value . '</option>' . PHP_EOL;
endforeach;
?>
</select>
<noscript>
<p>
<input name="kiezen" type="submit" value="Verzenden">
</p>
</noscript>
</form>
<p><label for="maand">Kies een maand</label><br>
<select name="maand" id="maand" onchange="this.form.submit();">
<?php
if(!isset($_POST['smaand'])){
$smaand = date('m');
}
else{
$smaand = $_POST['smaand'];
};
$maanden = array(1 => 'Jan.', 2 => 'Feb.', 3 => 'Mar.', 4 => 'Apr.', 5 => 'Mei', 6 => 'Jun.', 7 => 'Jul.', 8 => 'Aug.', 9 => 'Sep.', 10 => 'Okt.', 11 => 'Nov.', 12 => 'Dec.'); // afkortingen van maanden
foreach ($maanden as $key => $value):
$selected_m = ($key == $smaand) ? ' selected="selected"' : '';
echo '<option value="' . $key . '"' . $selected_m . ' name="smaand">' . $value . '</option>' . PHP_EOL;
endforeach;
?>
</select>
<noscript>
<p>
<input name="kiezen" type="submit" value="Verzenden">
</p>
</noscript>
</form>
Met vriendelijke groeten,
Bart Roelofs
Een <option> heeft geen name, dus name="smaand" kan weg.
Owhja, natuurlijk! Bedankt voor de aanvulling!