Woensdag staat bovenaan in mijn dropdown

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marc rc is as

Marc rc is as

05/09/2010 15:43:41
Quote Anchor link
Met een stukje script wat ik eerder hier heb mogen ontvangen op het forum heb ik een datumkiezer gemaakt.

Hoe komt het dat bij de dagen (voluit) "woensdag" bovenaan staat en niet "maandag" en hoe kan ik er voor zorgen dat dit wel zo is?

Dit is het stukje code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<select name="datum_dag" id="datum_dag">
<?php                
                #| Alle dagen van de week aflopen.
            for($dag = 1; $dag <= 7; $dag++){
            #| Hier kijken we of de huidige dag als de geselecteerde dag moet worden weergeven.
            $selected = ($dag == $rij['Agenda_Dag']) ? ' selected="selected"' : '' ;
            #| Optie weergeven.
            echo '<option value="'.$dag.'"'.$selected.'>'.strftime("%A", mktime(0, 0, 0, 0, $dag, 0)).'</option>';
            }
              
                ?>

                </select>
Gewijzigd op 05/09/2010 15:44:46 door Marc rc is as
 
PHP hulp

PHP hulp

26/12/2024 12:17:24
 
Vincent Huisman

Vincent Huisman

05/09/2010 15:46:16
Quote Anchor link
hier kunenn we natuurlijk niets mee, laat eens wat meer code zien
 
Jelmer -

Jelmer -

05/09/2010 15:52:45
Quote Anchor link
Nee, dit is voldoende code hoor. Zie maar de grap:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
date_default_timezone_set('Europe/Amsterdam');
setlocale(LC_ALL, 'nl_NL');

$x = mktime(0, 0, 0, 0, 1, 0);

echo date('d-m-Y H:i:s, $x') . "\n";
// geeft bij mij 01-12-1999 00:00:00

echo strftime('%A', $x);
// geeft bij mij woensdag
?>


edit: my bad, ik was een argument voor date() vergeten. Maar zie daar de oorzaak, mktime maakt een andere datum dan jij waarschijnlijk verwacht.

edit2: my bad alweer, ik gaf een 0 meer aan mktime dan de TS.
Gewijzigd op 05/09/2010 15:56:35 door Jelmer -
 
Marc rc is as

Marc rc is as

05/09/2010 15:56:41
Quote Anchor link
edit: Late reactie Jelmer was me voor!

Wat wil je meer zien?

Gebruik dit en je ziet het resultaat. Iemand enig idee waarom?

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
28
29
30
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form id="form" name="form" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
        <table width="505" border="0">

</body><td width="175">Dag / Datum:</td>
          <td width="330" height="25">
            <select name="datum_dag" id="datum_dag">
                <?php
                #| Alle dagen van de week aflopen.
            for($dag = 1; $dag <= 7; $dag++){
            #| Hier kijken we of de huidige dag als de geselecteerde dag moet worden weergeven.
            $selected = ($dag == $rij['Agenda_Dag']) ? ' selected="selected"' : '' ;
            #| Optie weergeven.
            echo '<option value="'.$dag.'"'.$selected.'>'.strftime("%A", mktime(0, 0, 0, 0, $dag, 0)).'</option>';
            }
              
                ?>

                </select>
    
             </td>
               </tr>
        </table>    
</form>
</html>
Gewijzigd op 05/09/2010 15:57:35 door Marc rc is as
 
Jelmer -

Jelmer -

05/09/2010 15:59:30
Quote Anchor link
Een redelijk simpele oplossing is om gewoon een paar dagen verderop te tellen, al vraag ik me af hoe betrouwbaar het is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
for($dag = 6; $dag <= 12; $dag++)
?>
 
Marc rc is as

Marc rc is as

05/09/2010 16:02:47
Quote Anchor link
Oke Jelmer, thanks.
Ik ga overwegen wat zinvol is. Met woensdag beginnen of jou trucje uithalen.
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
for($dag = 6; $dag <= 12; $dag++)
?>


Ofschoon het geen probleem is ziet het er wel wat raar uit.
 



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.