Avatar billede Slettet bruger
02. november 2005 - 17:24 Der er 8 kommentarer og
1 løsning

Min udreng alder funktion virker pludselig ikke korrekt

Hej, jeg har følgende funktion jeg bruger til at udregne folks alder på et udtræk fra min database:

    function calculate_age($m, $d, $y) {
        $now = getdate();
        $nmonth = $now['month'];
        $nday = $now['mday'];
        $nyear = $now['year'];
        if ($nmonth < $m OR $nmonth = $m AND $nday < $d) {
            $age = $nyear - $y - 1;
        }
        else {
            $age = $nyear - $y;
        }
            return $age;
    }

Hidtil har den virket fint, men pludseligt viser den alle aldre med et år for lidt, og jeg ved ikke hvorfor? Nogen der kan hjælpe, her er hele min kode: http://hlr.users.whitehat.dk/viewmember.phps
Birthday feltet er et Date felt der er sat op på følgende måde: 0000-01-02 hvor 01 er måned og 02 er dag. Men det ved i nok allerede :P Nogen der kan spotte en fejl? Jeg kan godt sætte age +1 men vil hellere have det til at virke som det gjorde før, hvis nu det skulle være muligt.
Avatar billede nielle Nybegynder
02. november 2005 - 17:48 #1
Prøv til en start at rette:

$nmonth = $now['month'];

- til:

$nmonth = $now['mon'];
Avatar billede nielle Nybegynder
02. november 2005 - 17:50 #2
Og ret så:

... $nmonth = $m ...

- til:

... $nmonth == $m ...
Avatar billede Slettet bruger
02. november 2005 - 17:51 #3
Det andet har altid virket, men har prøvet at ændre til
$nmonth = $now['mon'];
Det ændrer desværre ikke noget.
Avatar billede oversjanten Nybegynder
02. november 2005 - 17:53 #4
$now['mday'];

skal rettes til 

$now['day'];
Avatar billede Slettet bruger
02. november 2005 - 17:54 #5
Det virkede med nielles andet svar. Men forstår så bare ikke hvorfor det virkede før. :S Men kom med et svar!
Avatar billede oversjanten Nybegynder
02. november 2005 - 17:56 #6
uuuppps... mybad... havde ikke lige set det var database udtræk...
Avatar billede nielle Nybegynder
02. november 2005 - 17:59 #7
At det skulle have virket før kan kun være rent held!

$nmonth = $now['month'];

- giver nemlig sådan noget som "Jun" mens at:

$nmonth = $now['month'];

- giver 6 som er det rigtige.

Ved denne stump kode:

... $nmonth = $m ...

- fik du imidlertid overskrevet månedsnavnet med værdien fra din $m. Derfor compilede det stadigvæk, men der blev aldrig taget hensyn til den nuværende måned.

oversjanten> Det er nu ikke noget database involveret, men "day" er nu alligevel ikke defineret i getdate():

http://dk2.php.net/getdate
Avatar billede nielle Nybegynder
02. november 2005 - 17:59 #8
... og et svar :^)
Avatar billede Slettet bruger
02. november 2005 - 18:04 #9
Tak skal du have! :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester