Datum in option tag

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bart Roelofs

Bart Roelofs

30/09/2012 00:55:13
Quote Anchor link
Hallo,

Ik heb een probleem om de datum in een option te zetten. Zoals je hieronder misschien ziet, gaat het om de maand.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
    <select name="maand" id="select-maand">
<option value="0" selected="selected">Huidige maand</option>
<option value="1"><?php date("F")+1 ?></option>
<option value="2"><?php date("F")+2 ?></option>
<option value="3"><?php date("F")+3 ?></option>
</select>


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
 
PHP hulp

PHP hulp

22/12/2024 19:56:14
 
- SanThe -

- SanThe -

30/09/2012 01:02:44
Quote Anchor link
Date("F") geeft een tekst en dan doe jij +1.
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
Gewijzigd op 30/09/2012 01:05:19 door - SanThe -
 
Bart Roelofs

Bart Roelofs

30/09/2012 01:09:20
Quote Anchor link
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
 
Frank Nietbelangrijk

Frank Nietbelangrijk

30/09/2012 01:51:43
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>";
?>


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
 
Eddy E

Eddy E

30/09/2012 08:32:38
Quote Anchor link
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?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

30/09/2012 10:37:01
Quote Anchor link
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php var_dump($today); ?>

(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)
PHP script in nieuw venster Selecteer het PHP script
1
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/>";
?>


groeten Frank
Gewijzigd op 30/09/2012 11:02:50 door Frank Nietbelangrijk
 
Bart Roelofs

Bart Roelofs

01/10/2012 18:27:10
Quote Anchor link
Oké, het werkt. Heb het op de volgende manier opgelost, voor als iemand het probleem ooit nog tegenkomt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<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>


Met vriendelijke groeten,
Bart Roelofs
 
- SanThe -

- SanThe -

01/10/2012 18:50:27
Quote Anchor link
Een <option> heeft geen name, dus name="smaand" kan weg.
 
Bart Roelofs

Bart Roelofs

01/10/2012 22:19:28
Quote Anchor link
Owhja, natuurlijk! Bedankt voor de aanvulling!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.