Beste allemaal,

Ik probeer een rij te maken met daarin de dagen van de week (ma t/m za)plus de datum.
Zo:
Maandag 7 April
Dinsdag 8 April
Etc...

Nu probeer ik met de date functie date() voor elkaar te krijgen. Maar dat lukt niet. Het probleem is dat het elke week weer moet lukken. En dat krijg ik niet voor elkaar.

Edit: mijn stukje code:
De datum van morge weergeven dat gaat wel:
<?php mktime(0, 0, 0, date("m") , date("d")+1, date("Y")); ?>
Reken terug van de dag van vandaag.
PHP.net/date
w - dag van de week, numeriek, dus "0" (Zondag) tot "6" (Zaterdag)

Controleer daarmee welke dag het is en wat daarvan de datum is. Reken zo terug naar maandag, en ga vanuit daar door t/m zondag.
Djemo schreef op 07.04.2008 15:39
Reken terug van de dag van vandaag.
[quote=PHP.net/date]w - dag van de week, numeriek, dus "0" (Zondag) tot "6" (Zaterdag)

Controleer daarmee welke dag het is en wat daarvan de datum is. Reken zo terug naar maandag, en ga vanuit daar door t/m zondag.[/quote]

Je hebt gelijk Djemo :)

In ieder geval ben ik tot de volgende code gekomen, en die werkt:

<?php
// De huide dag in een nummer
// 0 = zondag, 1 = maandag, 2 = dinsdag .. etc
$huidig = date('w');

// We willen dat de dagen vanaf maandag weergegeven worden
// 1 staat dus voor maandag
$maandag = 1;

// In deze if else clause rekenen we het verschil uit vanaf de huidige dag, $huidig en maandag, $maandag
// Bijvoorbeeld voor woensdag, dat is dagnummer 3, volgt het rekensommetje 3-1 = een verschil van 2. twee dagen terugtellen dus
$verschil = ($huidig < $maandag) ? ($maandag - $huidig) : ($huidig - $maandag);

// We gebruiken mktime om een timestamp te genereren
$mktime = mktime(0,0,0,(date('n')),(date('j')-$verschil),(date('Y')));

// Zet de timestamp om in de datum die we willen hebbebn
$datum_maandag = date('l j F',$mktime);

// Geef de dag, maannummer, en maandnaam weer
echo $datum_maandag;
?>

Maar het kan stom lijken, maar nogmaals de vraag, kan mij iemand een hint geven hoe ik nu de dinsdag, woensdag, donderdag, vrijdag, zaterdag zo kort mogelijk uitreken.

Want met de volgende code kom ik er wel:

<?php
// DINSDAG
// Tel 1 bij het verschil op
$verschil++;

// We gebruiken mktime om een timestamp te genereren
$mktime = mktime(0,0,0,(date('n')),(date('j')-$r),(date('Y')));

// Zet de timestamp om in de datum die we willen hebbebn
$datum_dinsdag = date('l j F',$mktime);

echo "<br />".$datum_dinsdag;
?>

Maar de code wordt daarmee wel erg lang, bestaat er niet een manier waardoor het vele malen korter kan?

Edit: een for loopje natuurlijk ^^
effe puzzelen en hoppa:

<?php
for ($v=0; $v <= 5;$v++) {
// We gebruiken mktime om een timestamp te genereren
$mktime = mktime(0,0,0,(date('n')),(date('j')-$verschil+$v),(date('Y')));

// Zet de timestamp om in de datum die we willen hebbebn
$print_datum = date('l j F',$mktime);

// Geef de dag, maannummer, en maandnaam weer
echo $print_datum."<br />";
}
?>

DANK

Reageren