Datum in option tag
Hallo,
Ik heb een probleem om de datum in een option te zetten. Zoals je hieronder misschien ziet, gaat het om de maand.
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
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
Date("F") geeft een tekst en dan doe jij +1.
Hoe wil je een getal en een tekst optellen?
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 -
Had eigenlijk gehoopt dat het zou werken... Een andere suggestie om in een formulier de huidige datum als eerste in een drop down te zetten gevolgd door 11 opvolgende maanden?
Groeten
Bart
Groeten
Bart
PHP heeft geen Nederlandse kalendermaanden dus is een array het handigst. Dan moet je nog even een for lusje hebben om de maanden weer te geven:
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
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
Frank: wat is strftime() dan? In combinatie met set_locale()?
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?
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?
Ja, er zijn inderdaad nogal wat "vormen" van tijd/datum classes en functies. Ik weet uit eigen ervaring dat dit best lastig kan zijn.
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:
groeten Frank
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
Oké, het werkt. Heb het op de volgende manier opgelost, voor als iemand het probleem ooit nog tegenkomt:
Met vriendelijke groeten,
Bart Roelofs
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!




