Kalender

Door Arjan Kapteijn, 21 jaar geleden, 20.082x bekeken

Dus je zoekt iets om eenvoudig een datumpje mee in te vullen? Je wilt iets maken zoals een outlook agenda of je wilt ergens anders een agenda voor hebben? Dan heb ik nu wat leuks voor je gemaakt!

Enkele weken geleden werd ik door een klasgenoot gevraagd om ergens mee te helpen. Omdat datums in PHP soms best ingewikkeld zijn kom ik hem op dat moment niet 1-2-3 helpen. Nu ik vakantie heb besloot ik enkele dagen geleden er toch maar een uurtje in te investeren... het is toch eigenlijk best interessant om te zoeken naar zulke oplossingen ;).

Je kan het practisch overal wel voor gebruiken en het is ook gemakkelijk te intergreren. Bijvoorbeeld in je css, een popup of een formulier. Met een beetje creativiteit kan je er dit soort applicaties mee maken. Een werkend voorbeeld vind je hier (test:test).

Voorbeeld: http://test.i-cey.net/agenda/voorbeeld.php

Gesponsorde koppelingen

PHP script bestanden

  1. kalender

 

Er zijn 61 reacties op 'Kalender'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Josko
josko
21 jaar geleden
 
0 +1 -0 -1
leuk idee, wel leuk gedaan ook.
- -
- -
21 jaar geleden
 
0 +1 -0 -1
Ziet er heel goed uit. Ik heb laatst ook zoiets gemaakt voor de site van het voetbalteam van m'n broertje, maar dat was wel iets anders opgebouwd ( http://213.84.7.84:81/voetbal )

Mooie lay-out ook!!
Menno
menno
21 jaar geleden
 
0 +1 -0 -1
leuk script ;) heel handig
Emile Verbunt
Emile Verbunt
21 jaar geleden
 
0 +1 -0 -1
weer zon mooi scriptje van arjan ;)
je houdt maar niet op he
Harmen
Harmen
21 jaar geleden
 
0 +1 -0 -1
Het script ziet er idd goed uit.. veel uitleg ook!
Verder werkt het voorbeeld bij mij niet...:S
Snotty
snotty
21 jaar geleden
 
0 +1 -0 -1
Het script van de vraag op het forum :D.
Ziet er goed uit (de code) maar het voorbeeld werkt niet :(. Maar aangezien ze hierboven zeggen dat het mooie layout is, zal het wel zo zijn :-).
Jelmer Draaijer
Jelmer Draaijer
21 jaar geleden
 
0 +1 -0 -1
voorbeeld doet het niet meer.... van al de commentaar kan ik nog wat leren:P
Snotty
snotty
21 jaar geleden
 
0 +1 -0 -1
Het volgende kan ook korter:

$maanden = array(1 => 'Januari', 2 => 'Februari', 3 => 'Maart', 4 => 'April', 5 => 'Mei', 6 => 'Juni', 7 => 'Juli', 8 => 'Augustus', 9 => 'September', 10 => 'Oktober', 11 => 'November', 12 => 'December');

Korter:

$maanden = array(1 => 'Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December');

Nu nog even wat muggenziften :p;
- Waarom gebruik je op regel 15 array_key_exists() en op regel 29 in_array()?
Je kan evengoed 2X dezelfde functie gebruiken :).
- Waarom doe je op regel 31 en 39 htmlentities()? Daar zie ik het nut niet echt van in :).

Verder zoals ik al zei: goed script! :).
Arjan Kapteijn
Arjan Kapteijn
21 jaar geleden
 
0 +1 -0 -1
Zo'n beetje al mijn domeinen liggen eruit, probleempje in Amerika en daar kan ik dus helaas weinig aan doen. Voorbeeld gaat vanzelf wel weer werken als mijn domeinen het dus doen :).

Snotty, thx voor je feedback... de meeste dingen heb ik echter express gedaan. Die htmlentities is bijv om misbruik te voorkomen als iemand zonder kennis zomenteen een echo $datum toe gaat passen.
Kalle P
Kalle P
21 jaar geleden
 
0 +1 -0 -1
if(isset($_GET['maand']))
{
//Eerst kijken we of die maand wel bestaat
if(array_key_exists($_GET['maand'], $maanden))
{
$maand = $_GET['maand'];
}else{
$maand = date('n');
}
}else{
$maand = date('n');
}

korter:
if(isset($_GET['maand']) && array_key_exists($_GET['maand'], $maanden)){
$maand = $_GET['maand'];
}
else{
$maand = date('n');
}

En dat ook voor jaar...
Marien xD
Marien xD
21 jaar geleden
 
0 +1 -0 -1
kan nog korter :P

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$maand
= (isset($_GET['maand']) && array_key_exists($_GET['maand'], $maanden)) ? $_GET['maand'] : date('n');
?>
Jeroen Langenberg
Jeroen Langenberg
21 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
//En de jaren die we willen toestaan, in dit geval van 2006 tot 2010.
$jaren         = range(2006,2010);
?>


Hmm, beetje jammer, mss is het leuker om via date('Y'); en date('Y') + 4; te werken?

Zodat je dat script niet om de 4 jaar moet aanpassen

ong dit: (zal vast beter kunnen)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$jaarnu = date('Y');
$jaareind = $jaarnu + 4;
$jaren = range($jaarnu, $jaareind);
Arjan Kapteijn
Arjan Kapteijn
21 jaar geleden
 
0 +1 -0 -1
Maak er dan van:

$jaren = range(date('Y'), date('Y')+4);

En jammer is niet het goede woord... ik geef een opzetje, aan jullie om ermee verder te gaan.
Leo
Leo
21 jaar geleden
 
0 +1 -0 -1
Netjes gemaakt Arjan!
Stefan
Stefan
21 jaar geleden
 
0 +1 -0 -1
Leuk, maar bij je Agenda voorbeeld, als je daar bij de URL 'agenda/?maand=6&jaar=2006' er af haalt, kom je op je hoofd-map uit met allemaal bestanden.. niet beveiligd. ?
Vincent
Vincent
21 jaar geleden
 
0 +1 -0 -1
Mooi script jah. Maar je kan wel alles zien bijvoorbeeld: http://arjan.i-cey.net/rene/bestanden/
Frank -
Frank -
21 jaar geleden
 
0 +1 -0 -1
De volgorde van de dagen in de array weekdagen is niet ideaal. De week begint nu op een maandag, met key 0. Het is handiger om met de zondag te beginnen, dan komen de keys overeen met het resultaat van de functie date('w');
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
//De dagen in een week
$weekdagen    = array('zondag','maandag','dinsdag','woensdag','donderdag','vrijdag','zaterdag');

Ga je dit gebruiken, dan moet je waarschijnlijk elders nog wel even de code aanpassen.
Vincent
Vincent
21 jaar geleden
 
0 +1 -0 -1
Ik begrijp het niet. Hoe kan het dat de kalender er bij heel anders uit ziet? De cijfers zijn blauw en het de lijntjes zijn anders?
Arjan Kapteijn
Arjan Kapteijn
21 jaar geleden
 
0 +1 -0 -1
Frank, het feit wat dit systeem zo ingewikkeld maakt is juist dat ik begin op maandag met een week. Zoals in Nederland gebruikelijk is. Als we gewoon op zondag zouden beginnen is het natuurlijk een eitje en is dit systeem totaal niet interesant.

Vincent, Css...

Stefan en Vincent. Waarom maakt iedereen zo'n probleem van het feit dat ik indexing aan heb staan? Net alsof dan opeens mijn server gehacked kan worden. Boeiend dat iemand door de site kan bladeren. Als iets beveilig moet worden kan je hem 1) niet zien en 2) niet bij.
Vincent
Vincent
21 jaar geleden
 
0 +1 -0 -1
Arjan heb je die css misschien voor me klaar liggen dat ik dat mag hebben?
Arjan Kapteijn
Arjan Kapteijn
21 jaar geleden
 
0 +1 -0 -1
eehm, staat gewoon in de bron.
Vincent
Vincent
21 jaar geleden
 
0 +1 -0 -1
o..... ok:P
Stefan
Stefan
21 jaar geleden
 
0 +1 -0 -1
Tja, sommige mensen vinden het verstoring van de privacy :) Anderen maakt het dus niks uit ;)
Vincent
Vincent
21 jaar geleden
 
0 +1 -0 -1
Waar moet ik de css plaatsen?
Arjan Kapteijn
Arjan Kapteijn
21 jaar geleden
 
0 +1 -0 -1
Waar jij wilt. Het is gewoon css.
Vincent
Vincent
21 jaar geleden
 
0 +1 -0 -1
Hoe voeg ik de css in? Ik heb nog nooit met css gewerkt vandaar.
Arjan Kapteijn
Arjan Kapteijn
21 jaar geleden
 
0 +1 -0 -1
Gewoon copy-pasten, net zoals ik gedaan heb.
Jeroen Langenberg
Jeroen Langenberg
21 jaar geleden
 
0 +1 -0 -1
Arjan, mooi gemaakt, heb er zelf net zoiets als jou omheen gebouwd :) Bedankt voor dit opzetje :)
Michael -
Michael -
21 jaar geleden
 
0 +1 -0 -1
Erg mooi script Arjan! :)

Is het niet iets veiliger om
if(in_array($_GET['dag'], $dagen))
te vervangen door:
if(in_array($_GET['dag'], $dagen) && is_numeric($_GET['dag']))
Arjan Kapteijn
Arjan Kapteijn
21 jaar geleden
 
0 +1 -0 -1
Veiliger word het er niet op, in die $dagen array zitten namelijk alleen maar nummers.
PHP Newbie
PHP Newbie
21 jaar geleden
 
0 +1 -0 -1
Bij mij veranderd de tabel een klein beetje van breedte als ik een 2-cijferig-cijfer aan klik. Dus misschien is het makkelijk deze een vaste breedte te geven ;-)
Arjan Kapteijn
Arjan Kapteijn
21 jaar geleden
 
0 +1 -0 -1
PHP Newbie, het is een voorbeeld waar ik even snel een stukje CSS omheen heb gevouwen zodat het er wat beter uitziet. Aan jou de taak om er wat leuks van te maken :).
Peter van der Voort
Peter van der Voort
21 jaar geleden
 
0 +1 -0 -1
Een mooi, goed werkend script. Maar ik ben erg nieuwsgierig hoe het moet als je een 0 wilt plaatsen in de dagen en maande 1 t/m 9.

Heeft iemand een suggestie hoe?
Arjan Kapteijn
Arjan Kapteijn
21 jaar geleden
 
0 +1 -0 -1
0 wilt plaatsen in de dagen en maanden 1 t/m 9? Dag nul? Waneer komt dat voor?
Peter van der Voort
Peter van der Voort
21 jaar geleden
 
0 +1 -0 -1
Nee niet een dag 0, maar als je op een dag klikt dat dan niet een 1 wordt genoemd in de link maar 01, 02, 03, 04, 05 etc
Arjan Kapteijn
Arjan Kapteijn
21 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
str_pad($waarde, 2, '0', STR_PAD_LEFT);
?>
Peter van der Voort
Peter van der Voort
21 jaar geleden
 
0 +1 -0 -1
Ik heb de code ingevuld, maar ik krijg er geen 0 voor te zien. Ik heb de code boven in erbij getypt. Doe ik iets fout?
Arjan Kapteijn
Arjan Kapteijn
21 jaar geleden
 
0 +1 -0 -1
Ja, je hebt blijkbaar geen idee wat je doet... zoiezo zul je het moeten echoén en de $waarde moet natuurlijk iets zijn als $dag2.
Mike van Dongen
Mike van Dongen
21 jaar geleden
 
0 +1 -0 -1
Er staat op regel 6:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$weekdagen
    = array('maandag','dinsdag','woensdag','donderdag','vrijdag','zaterdag','zondag');
?>

Terwijl er daar verder niets mee gedaan wordt (?)

Verder een goed script! :D
Ellen
Ellen
21 jaar geleden
 
Ik maak een site voor een Noors vakantie huisje, en daarin wil ik graag een soort agenda waar mensen kunnen zien wanneer het huisje bezet is en wanneer niet. Over dit script heb ik een paar vragen:

1. Hoe kan ik een afspraak toevoegen?
2. Hoe kan ik (als het kan met dit script), als ik een afspraak toevoeg, een begin en einddatum maken?

Bijv begindatum: 23 oktober
einddatum: 23 november

En dan alle datums tussen 23 oktober en 23 november een rood rondje omheen komt?
Joeri
Joeri
21 jaar geleden
 
0 +1 -0 -1
Ik krijg de melding 'connectie met database mislukt...'
Kheb de code van de agenda gekopieerd tussen <body> en </body>.
Moet ik misschien nog iets doen??
Ik begrijp nog geen knars van php. Kan iemand mij helpen aub...
Ik ben bezig met een website te maken voor onze zaalvoetbalploeg en wil een leuke kalender inbrengen waar verjaardagen, wedstrijden en evenementen in verschijnen.

Vriendelijke groeten
Joeri
Dion
Dion
21 jaar geleden
 
0 +1 -0 -1
Netjes script hoor!
Bram
Bram
21 jaar geleden
 
0 +1 -0 -1
Ik ben wat bezich geweest maar ik kom er niet helemaal uit.

de database is:

CREATE TABLE `uitzendingen` (
`id` int(11) NOT NULL auto_increment,
`pub_datum` datetime NOT NULL default '0000-00-00 00:00:00',
`message` longtext NOT NULL,
`programma` varchar(255) NOT NULL,
`datum` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=15 ;


ik wil uit de db de datums halen waar een uitzending en deze bold weergeven als ik Limit 1 heb gaat alles goed.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$select
= mysql_query("SELECT datum FROM uitzendingen WHERE $datum <= datum ORDER BY id DESC LIMIT 1");
?>


voorbeeld http://kempen.fm/agenda-a.php


maar als ik Limit er af haalt herhaalt hij alles ik heb verschillende uitzendingen op een dag.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$select
= mysql_query("SELECT datum FROM uitzendingen WHERE $datum <= datum ORDER BY id DESC");
?>

voorbeeld http://kempen.fm/agenda-b.php

Wie zou mij kunnen helpen, de bedoeling is dus dat ik voor elke datum waar een of meerdere uitzendingen zijn de datum in het bold weergegeven word.

Ik plaats hier ook de code in zij totaal van agenda-b.php:

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
<?php
//Allereerst gaan we alle maanden defineren
$maanden     = array(1 => 'Januari', 2 => 'Februari', 3 => 'Maart', 4 => 'April', 5 => 'Mei', 6 => 'Juni', 7 => 'Juli', 8 => 'Augustus', 9 => 'September', 10 => 'Oktober', 11 => 'November', 12 => 'December');

//De dagen in een week
$weekdagen    = array('maandag','dinsdag','woensdag','donderdag','vrijdag','zaterdag','zondag');

//En de jaren die we willen toestaan, in dit geval van 2006 tot 2010.
$jaren         = range(2006,2010);

//Wat als er een maand in de url staat?
if(isset($_GET['maand']))
{

    //Eerst kijken we of die maand wel bestaat
    if(array_key_exists($_GET['maand'], $maanden))
    {

        $maand = $_GET['maand'];
    }
else{
        $maand = date('n');
    }    
}
else{
    $maand = date('n');
}


//Wat als er een jaar in de url staat?
if(isset($_GET['jaar']))
{

    //Eerst kijken we of we dat jaar wel goedkeuren
    if(in_array($_GET['jaar'],$jaren))
    {

        $jaar = htmlentities($_GET['jaar']);
    }
else{
        $jaar = date('Y');
    }    
}
else{
    $jaar = date('Y');
}


//Omdat we nu het jaar en de maand weten kunnen we vaststellen welke dagen zijn toegestaan
$dagen = range(1,date('t', mktime(0,0,0,$maand,1,$jaar)));

//Wat als er een dag in de url staat?
if(isset($_GET['dag']))
{

    //Bestaat deze dag wel?
    if(in_array($_GET['dag'], $dagen))
    {

        $dag = htmlentities($_GET['dag']);
    }
else{
        $dag = 1;
    }    
}
else{
    //Wat als er geen dag is geselecteerd? Dan kijken we of het vandaag dezelfde maand is als wat er is opgevraagd en selecteren we vandaag!
    if($maand == date('n'))
    {

        $dag = date('j');
    }
else{
        $dag = 1;
    }
}


//Tijd voor een formuliertje!
echo '<form action="" method="GET">';

//We maken een selectbox met daarin een foreach met alle maanden
echo '<select name="maand" onchange="this.form.submit()">';
foreach($maanden as $maandnummer => $maandnaam)
{

    if($maandnummer == $maand)
    {

        echo '<option selected value="'.$maandnummer.'">'.$maandnaam.'</option>';
    }
else{
        echo '<option value="'.$maandnummer.'">'.$maandnaam.'</option>';
    }
}

echo '</select> ';

//Vervolgens maken we een selectbox voor alle jaren
echo '<select name="jaar" onchange="this.form.submit()">';
foreach($jaren as $jaarnummer)
{

    if($jaarnummer == $jaar)
    {

        echo '<option selected value="'.$jaarnummer.'">'.$jaarnummer.'</option>';
    }
else{
        echo '<option value="'.$jaarnummer.'">'.$jaarnummer.'</option>';
    }
}

echo '</select></form><hr>';

//Nu word het tijd om een mooi tabelletje te maken
echo '<table>';

//We echoén alvast de bovenste rij
echo '<tr><th>M</th><th>D</th><th>W</th><th>D</th><th>V</th><th>Z</th><th>Z</th></tr><tr>';

//Wat is de eerste dag van de maand?
$eerstedag = date('w', mktime(0,0,0,$maand,1,$jaar));

//Deze hebben we nodig om wat lege ruimte te vullen als de week niet begint op maandag.
for($nummer = 1; $nummer <= 6; $nummer += 1)
{

    if($nummer != $eerstedag)
    {

        echo '<td></td>';
    }
else{
        $nummer = 7;
    }
}

    
//Voor iedere dag in de week gaan we nu een loopje beginnen!
foreach($dagen as $dag2)
{

    //Welke weegdag is het?
    $dagindeweek = date('w', mktime(0,0,0,$maand,$dag2,$jaar));
            
    //Als het 1 is (maandag) begint er een nieuwe rij!
    if($dagindeweek == 1)
    {

        echo '<tr>';
    }

    
    //Stel dat het toevallig dezelfde datum als vandaag is? Dan willen we een rood randje!
    if(($dag2 == date('j')) && ($maand == date('n')) && ($jaar == date('Y')))
    {

        echo '<td style="border: 1px solid red;">';
    }
else{
        echo '<td>';
    }
    

    //Stel dat het toevallig dezelfde dag is als de dag die we geselecteerd hebbeb? Dan willen we bold!
    include("kempentv/verbindingen/config.php");
                    
mysql_connect("$hostname","$username","$password");
mysql_select_db("$database");
    $datum = date("Y-m-d");
    $select = mysql_query("SELECT datum FROM uitzendingen WHERE $datum <= datum ORDER BY id DESC");
    while ($list = mysql_fetch_object($select)){
    $dags = substr($list->datum, 8);
    $maands = substr($list->datum, 5, -3);
    $jaars = substr($list->datum, 0, -6);
    

    
        if(($dag2 == $dags) && ($maand == $maands) && ($jaar == $jaars))
    {

        echo '<b>'.$dags.'</b></td>';
    }
    
    
    else
    {
        echo ''.$dag2.'</td>';
    }
    }

    //Als het dag 0 is (zondag) willen we de rij eindigen!
    if($dagindeweek == 0)
    {

        echo '</tr>';
    }    
}


//Sluiten die handel! Huppakee!
echo '</table>';

//Uiteraard willen we een vorige maand...
if($maand == 1)
{

    echo '<br><a href="?maand=12&amp;jaar='.($jaar-1).'"><< Vorige</a>';
}
else{
    echo '<br><a href="?maand='.($maand-1).'&amp;jaar='.$jaar.'"><< Vorige</a>';
}


//... en volgende maand knopje! Als het Januari of December is doen er uiteraard 1 jaar eraf of erbij.
if($maand == 12)
{

    echo ' | <a href="?maand=1&amp;jaar='.($jaar+1).'">Volgende >></a>';
}
else{
    echo ' | <a href="?maand='.($maand+1).'&amp;jaar='.$jaar.'">Volgende >></a>';
}


//Zo, wel zo aardig vind je niet ;)
echo '<br><br><a href="http://www.arjaninkenia.nl" target="_blank">Arjan Kapteijn</a>';
?>
Arjan Kapteijn
Arjan Kapteijn
21 jaar geleden
 
0 +1 -0 -1
$datum <= datum

^^ lijkt me onlogisch.
Bram
Bram
21 jaar geleden
 
0 +1 -0 -1
$datum <= datum

om er voor te zorgen dat als een dag is geweest de dag niet meer bold weer gegeven zal worden.

ik weet niet of dat op een andere manier moet/kan.

maar het is nog geen antwoord op mijn vraag!
Bram
Bram
21 jaar geleden
 
0 +1 -0 -1
Ik heb er nu het volgende van gemaakt maar het werkt nog steeds voor geen meter :'(.

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
31
32
<?php

//Stel dat het toevallig dezelfde dag is als de dag die we geselecteerd hebbeb? Dan willen we bold!

    
    if($dag2 == $dag)
    {

        echo '<b>'.$dag2.'</b></a></td>';
    }

    else
    {
    
    include("kempentv/verbindingen/config.php");
                    
    mysql_connect("$hostname","$username","$password");
    mysql_select_db("$database");
    $datum = date("Y-m-d");
    $select = mysql_query("SELECT datum FROM uitzendingen WHERE '$jaar'-'$maand'-'$dag2' ORDER BY id DESC");
    if ($list = mysql_num_rows($select) >= 1)
    {

    
    echo '<b>'.$dag2.'</b></a></td>';
    }

    
    
    else
    {
    echo ''.$dag2.'</td>';
    }

    echo'';
    }

?>
Arjan Kapteijn
Arjan Kapteijn
21 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$query
= "SELECT COUNT(id) FROM afspraken WHERE datum = '".$jaar."-".str_pad($maand, 2, '0', STR_PAD_LEFT)."-".str_pad($dag2, 2, '0', STR_PAD_LEFT)."'";
    $resultaat = mysql_query($query);
    
    if($resultaat && mysql_result($resultaat, 0) >= 1)
    {

        echo '<a href="?dag='.$dag2.'&amp;maand='.$maand.'&amp;jaar='.$jaar.'"><b>'.$dag2.'</b></a>';
    }
else{
        echo '<a href="?dag='.$dag2.'&amp;maand='.$maand.'&amp;jaar='.$jaar.'">'.$dag2.'</a>';
    }

    ?>


^^ kan ongetwijfeld makkelijker maar stoei daar eens mee.
Bram
Bram
21 jaar geleden
 
0 +1 -0 -1
TOP!! hij werk nu bedankt.
Dimi o
dimi o
20 jaar geleden
 
0 +1 -0 -1
waarom is het in het voorbeeld mogelijk om per dag afspraken toe te voegen en als je de code download je enkel een kalender te zien krijgt ?

groeten
Jeroen Spaans
Jeroen Spaans
19 jaar geleden
 
0 +1 -0 -1
Hoe kan ik de $_GET datums wegschrijven naar mysql in een date rij?
Robert Tjalsma
Robert Tjalsma
19 jaar geleden
 
0 +1 -0 -1
Hoe kan ik een gekleurd randje (kleur naar keuze) om de datums krijgen waar iets is ingevuld?
Arjan Kapteijn
Arjan Kapteijn
19 jaar geleden
 
0 +1 -0 -1
Zoek even naar de comment; '//Stel dat het toevallig dezelfde dag is als de dag die we geselecteerd hebbeb? Dan willen we bold!'
Vincent Huisman
Vincent Huisman
19 jaar geleden
 
0 +1 -0 -1
hoe zou je zoiets met weeknummers kunnen doen zoals in het voorbeeld?
Vincent Huisman
Vincent Huisman
19 jaar geleden
 
0 +1 -0 -1
iemand? :S
Roeltje M
Roeltje M
19 jaar geleden
 
0 +1 -0 -1
Zie http://nl2.php.net/date

Week --- ---
W ISO-8601 week number of year, weeks starting on Monday (added in PHP 4.1.0) Example: 42 (the 42nd week in the year)
Menno Ridder
Menno Ridder
19 jaar geleden
 
0 +1 -0 -1
Hoi mensen.
Zeker mooi script. Heb ik veel aan.
Ik ben bezig het een beetje te editen. Nu kom ik op een probleem.

Ik wil dat alle datums uit mijn database een eigen vakje krijgen, net als de datum van vandaag. Nu ben ik redelijk ver.
Eerst kwam ik op het probleem dat hij de <td> start als het niet de dag van vandaag is. Dat heb ik met een check weten te voorkomen, maar deze check wordt alleen maar gedaan bij de laatste van mijn array. Bij een soort gelijk stukje code dat ik later gebruik geeft hij wel alles van mijn array weer, dat is dus waar ik niet uit kom...
Dit is mijn code.
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php

//    Voor iedere dag in de week gaan we nu een loopje beginnen!
    foreach($dagen as $dag2)
    {

//        Welke weekdag is het?
        $dagindeweek = date('w', mktime(0,0,0,$maand,$dag2,$jaar));
                
//        Als het 1 is (maandag) begint er een nieuwe rij!
        if($dagindeweek == 1)
        {

            echo '<tr>';
        }


//        Check of dat klopt
//        HIERBIJ DOET HIJ ALLEEN N17 (DE LAATSTE VAN DE ARRAY)

        $result = eventnaam();
        while ($row = mysql_fetch_array($result))
        {

            $event_dag = $row['dag'];
            $event_maand = $row['maand'];
            $event_jaar = $row['jaar'];

            if(($dag2 == $event_dag) && ($maand == $event_maand))
            {

                $check = 1;
            }
else {
                $check = 0;
            }
        }

//        Stel dat het toevallig dezelfde datum als vandaag is? Dan willen we een rood randje!
        if(($dag2 == date('j')) && ($maand == date('n')) && ($jaar == date('Y')))
        {

            echo '<td style="border: 1px solid red;">';
        }
else {
//            Als check NIET ok is, dan sluiten we het af
            if ($check != 1)
            {

                echo '<td>';
            }
        }


//        Elk event een andere kleur geven dan dat de normale data zijn
//        HIERBIJ DOET HIJ ALLES VAN DE ARRAY

        $result = eventnaam();
        while ($row = mysql_fetch_array($result))
        {

//            Event dag en maand
            $event_dag = $row['dag'];
            $event_maand = $row['maand'];
            $event_jaar = $row['jaar'];
            
            
            if(($dag2 == $event_dag) && ($maand == $event_maand))
            {

                echo "<td style='border: 1px solid black;'>";
            }
else {
                echo '';
            }
        }

?>

Kan iemand mij op weg helpen?
Alvast bedankt.
Vincent Huisman
Vincent Huisman
18 jaar geleden
 
0 +1 -0 -1
ik kom er maar niet uit om het uitgebreide voorbeeld na te maken :S wie zou mij willen en kunnen helpen plz
Niek
Niek
18 jaar geleden
 
0 +1 -0 -1
het voorbeeld doet het niet meer:(
Dennis Mertens
Dennis Mertens
18 jaar geleden
 
0 +1 -0 -1
Kan het niet mooi vinden. Maar wel leuk voor deze jonge man die dit heeft gemaakt om te oefenen.

Maar ik zou het script zelf niet toepassen.
Jos r
jos r
18 jaar geleden
 
0 +1 -0 -1
Heel mooi script! Ik kan ik veel van leren! Erg duidelijk met al dat commentaar erin :)

Maar een vraagje..
Ik zou graag bepaalde datums een andere kleur geven. En dat ik dan op een simpele manier steeds datums toe kan voegen (in een variabel zetten bijv.).

Ik wil bijvoorbeeld 2-12-2010 t/m 8-12-2010 kleuren.

Wie kan mij een beetje opweg helpen?
ik kan in loop:
foreach($dagen as $dag2)

Wel een check zetten om te checken of de datum 2-12-2010 is.
if($dag2 == 2 && $maand == 12 && $jaar == 2010){
tekst groen maken;
}
Maar het is de bedoeling dat er nog veel meer datums bijkomen...

Iemand enig idee?

Alvast bedankt.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Rinck
Rinck
17 jaar geleden
 
0 +1 -0 -1
Hallo Arjen,

Mooi leesbaar en bruikbaar script, met duidelijk commentaar, daar kan ik als PHP-beginner wat mee.
Compliment.
Ik zag een kleine schoonheidsfout, de laatste lege cellen hebben geen border meer. Kun je dat nog fixen?

M.vr.gr,
Rinck

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. kalender

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

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.