4 berichten aan het bekijken - 1 tot 4 (van in totaal 4)
  • Q:
    Bijdrager
    tijn22

    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!

    // 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;
    }

    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.

    Bijdrager
    PeterMeeuwsen
    ”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]

    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]

    Bijdrager
    meneer de koekepeer

    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]

    Bijdrager
    PeterMeeuwsen

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

4 berichten aan het bekijken - 1 tot 4 (van in totaal 4)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.