Sorry voor de vage titel, kon niets beters bedenken. Een klant vroeg mij vandaag een agenda voor hem te maken en nu is dat niet zo'n probleem, alleen heb ik echt geen idee hoe ik PHP automatisch zoiets kan laten genereren:
M D W D V Z Z
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 Enfin, je snapt het idee :P
Nu heb ik in de bron gekeken van verschillende agenda's, maar dat is helaas zo erg spagettiscripting, dat ik er echt niet uit kom. Ook op de rest van het internet zijn er of alleen maar volledige scripts te vinden, waarin dit verweeft (?! wellicht verwoven?) zit, maar nergens kan ik vinden hoe ik dit weer kan geven.
Hmmm... Beetje scripter moet logisch nadenken voor z'n job, dus werk het eens op papier uit:
Allereerst gewoon een tabel, de eerste rij is M D W D V Z Z. Vervolgens haal je met date() het aantal dagen van de maand op (http://php.net/date) en de dag van de eerste van de week (0 (maandag) tot 6 (zondag)). Als dat hoger ligt dan 0 zul je eerst een aantal lege cellen moeten maken. Tel daarbij hoeveel en maak de rest af, sluit vervolgens je <tr>.
Ga op die manier door met de rijen...
"Beetje scripter"
Au. Ik zal het even uitleggen: ik ben niet erg thuis is de date en time functies in de schone taal die men PHP noemt. Dus voor mij was het gewoon handig geweest als iemand nog iets van een klasse had liggen. Snapt u?
<?php
/*
* klasse datum
***
* Maak een datum en vergelijk die met andere data
*
*/
class datum
{
var $datum_array, $maand_tabel;
var $kalender;
var $data;
var $van, $tot, $verschil, $nieuwe_datum;
var $dagen, $maanden, $jaren;
var $dag, $maand, $jaar;
function datum ( $dag = 0, $maand = 0, $jaar = 0 )
{
if ( checkdate ( $maand, $dag, $jaar ) == false )
return false;
else
{
$this -> dag = $dag;
$this -> maand = $maand;
$this -> jaar = $jaar;
}
}
Ik heb deze code eens bekeken en die staat mij wel aan. Echter als ik de code gebruik geeft deze een lege pagina weer.
Zelf heb ik een waarde gegeven aan:
$van_jaar=2006;
$tot_jaar=2007;
Ook dit geeft niet weer.
Moet ik de functie/class op een of andere manier aanroepen???