Datum berekenen in PHP

Wat is er niet goed aan het volgende stukje php? Dit is een reserveringsscript voor een bungalowpark. Het is de bedoeling dat er aan de hand van de aankomstdatum ($dag $maand $jaar) de vertrekdatum wordt bepaald, alleen het zit ergens fout.. Maar kan niet vinden waar!

[quote:e44b231f9e]
// Hoeveel dagen zitten er in de maand?
$nd = mktime (0,0,0,$maand+1,0,$yr);
$nd = (strftime ("%d",$nd))+1;

// type 1 is midweek of week
// type 2 is weekend of week
if ($type == 1): {
$hoelang[1] = (“midweek”);
$hoelang[2] = (“week”);

$vertrekdag[1] = ($dag+4);
$vertrekmaand[1] = $maand;
$vertrekjaar[1] = $jaar;

// is de vertrekdatum wel mogelijk, zo nee, dan een maand (en eventueel een jaar) opschuiven en het aantal dagen verder tellen.
if ($vertrekdag[1] >= $nd): {
$vertrekdag[1] = ($vertrekdag[1]-$nd);
$vertrekmaand[1] = ($vertrekmaand[1]+1);
if ($vertrekmaand[1] >= 13); {
$vertrekmaand[1]=(1);
$vertrekjaar[1]=($vertrekjaar[1]+1);
}
}
endif;
$vertrekdag[2] = ($dag+7);
$vertrekmaand[2] = $maand;
$vertrekjaar[2] = $jaar;

// is de vertrekdatum wel mogelijk, zo nee, dan een maand (en eventueel een jaar) opschuiven en het aantal dagen verder tellen.
if ($vertrekdag[2] >= $nd): {
$vertrekdag[2] = ($vertrekdag[2]-$nd);
$vertrekmaand[2] = ($vertrekmaand[2]+1);
if ($vertrekmaand[2] >= 13); {
$vertrekmaand[2]=(1);
$vertrekjaar[2]=($vertrekjaar[2]+1);
}
}
endif;
}
[/quote:e44b231f9e]

In dezelfde maand gaat het prima, bijvoorbeeld 22 september, de vertekdatum is dan 22-09-2003 of 29-09-2003.

Kies ik voor 29 september, dan zijn de vertrekdata 3-1-2004 of 6-1-2004.

De dag klopt wel (3 en 6) maar dat moet oktober 2003 zijn ipv januari 2004!

Tijn.

[quote:ea0fb79bdb="tijn22"][code:1:ea0fb79bdb] // is de vertrekdatum wel mogelijk, zo nee, dan een maand (en eventueel een jaar) opschuiven en het aantal dagen verder tellen. if ($vertrekdag[1] >= $nd): { $vertrekdag[1] = ($vertrekdag[1]-$nd); $vertrekmaand[1] = ($vertrekmaand[1]+1); if ($vertrekmaand[1] >= 13); { $vertrekmaand[1]=(1); $vertrekjaar[1]=($vertrekjaar[1]+1); } } endif; $vertrekdag[2] = ($dag+7); $vertrekmaand[2] = $maand; $vertrekjaar[2] = $jaar; [/code:1:ea0fb79bdb] [/quote:ea0fb79bdb]

Je if-statements zien er volgens mij wat raar uit, met de : en ; (die horen daar volgens mij niet…

en endif is volgens mij niet nodig… (heb het zelf nooit gebruikt in php)…

Probeer het eens te veranderen in:

[code:1:ea0fb79bdb]
// is de vertrekdatum wel mogelijk, zo nee, dan een maand (en eventueel een jaar) opschuiven en het aantal dagen verder tellen.
if ($vertrekdag[1] >= $nd) {
$vertrekdag[1] = ($vertrekdag[1]-$nd);
$vertrekmaand[1] = ($vertrekmaand[1]+1);
if ($vertrekmaand[1] >= 13) {
$vertrekmaand[1]=1;
$vertrekjaar[1]=($vertrekjaar[1]+1);
}
}
$vertrekdag[2] = ($dag+7);
$vertrekmaand[2] = $maand;
$vertrekjaar[2] = $jaar;
[/code:1:ea0fb79bdb]

werkt het nu of heb je ng wat meer hulp nodig? [small]heb geen zin om voor jan joker een scriptje in elkaar te draaien..[/small]

Ik ga er voor het gemak maar van uit dat het probleem opgelost is....