Avatar billede jesper-madsen Nybegynder
09. august 2005 - 01:08 Der er 15 kommentarer og
1 løsning

Fødselsdags dato til alder.

Hvordan omregner jeg fra databasen:
Dage: $row[dage]
Månedere: $row[maanede]
År: $row[aar]

- fx.
Dage: 9
Månedere: 3
År: 1991

til 14 år?
Avatar billede diana1984 Nybegynder
09. august 2005 - 01:14 #1
Tillykke med fødselsdagen :o)
Avatar billede jesper-madsen Nybegynder
09. august 2005 - 01:16 #2
lol. Hvad snakker du om? *G*
Avatar billede mollevp Nybegynder
09. august 2005 - 01:42 #3
Noget ala.

<?php
   
    $dage = 9;
    $manede = 3;
    $aar = 1991;

    $time = mktime(0, 0, 0, $manede, $dage, $aar);
    $delta = time() - $time;

    $delta = $delta / 60 / 60 / 24 / 356;
   
    $delta = (int)$delta;
    echo "$delta år";

?>
Avatar billede roenving Novice
09. august 2005 - 01:42 #4
-- meget omhyggeligt:

$alder = År idag - $row[aar] = 14;
hvis idag måned < $row[maanede] $alder -= 1;
hvis idag måned == $row[maanede] && idag dag < row[dage] alder -= 1;
Avatar billede hmortensen Nybegynder
09. august 2005 - 01:43 #5
Må kunne gøres sådan her:
function birthDay($y, $m, $d)
{
    if ($m <= date("m") && $d <= date("d"))
        return date("Y")-$y;
    else
        return date("Y")-$y-1;
}

Så kan du bruge den sådan her:
echo "Alder: ".birthDay($row['aar'], $row['maanede'], $row['dage']);
Avatar billede roenving Novice
09. august 2005 - 01:51 #6
-- og det skal da tilføjes, at at idag skal hentes fra en date-constructor, som initialiseres med midnat !o]

-- og molleyp's vil give mange mærkelige resultater (selv hvis 356 rettes til 365 !-)

-- hmortensens vil give sjove resultater, hvis datoen idag er større end fødselsdatoen, selvom måneden er mindre (prøv selv 23/2-2005 som dato overfor eksemplets dato !-)
Avatar billede hmortensen Nybegynder
09. august 2005 - 01:57 #7
Woops :)
Nok bedre sådan her:
function birthDay($y, $m, $d)
{
    $a = date("Y")-$y;
    if (date("m") <= $m)
        return (date("d") <= $d) ? $a-1 : $a;
    else
        return $a;
}
Avatar billede coderdk Praktikant
09. august 2005 - 02:02 #8
Du kan også tage et kig på denne: http://php.coder.dk/calcage.php
Avatar billede roenving Novice
09. august 2005 - 02:03 #9
Nej, du skal helt ud i omhuen:

function birthDay($y, $m, $d)
{
    $a = date("Y")-$y;
    if (date("m") < $m)
        return $a-1;
    else if(date("m") == $m)
        return (date("d") <= $d) $a-1?  : $a;
    else
        return $a;
}
Avatar billede roenving Novice
09. august 2005 - 02:04 #10
Hov, lidt tavetosseri:

function birthDay($y, $m, $d)
{
    $a = date("Y")-$y;
    if (date("m") < $m)
        return $a-1;
    else if(date("m") == $m)
        return (date("d") <= $d) ? $a-1  : $a;
    else
        return $a;
}
Avatar billede roenving Novice
09. august 2005 - 02:05 #11
Vræææh ...

Man er vel normalt 14 på sin fødselsdag:

function birthDay($y, $m, $d)
{
    $a = date("Y")-$y;
    if (date("m") < $m)
        return $a-1;
    else if(date("m") == $m)
        return (date("d") < $d) ? $a-1  : $a;
    else
        return $a;
}
Avatar billede hmortensen Nybegynder
09. august 2005 - 02:16 #12
Jeg virker ikke i dag :(
Avatar billede jesper-madsen Nybegynder
09. august 2005 - 17:56 #13
smid svar mollevp
Avatar billede roenving Novice
09. august 2005 - 18:00 #14
-- og egentlig kan man jo ligesågodt skrive den helt korte version, som _altid_ giver det rigtige resultat:

function birthDay($y, $m, $d)
{
    $a = date("Y")-$y;
    return (date("m") < $m || date("m") == $m && date("d") < $d) ? $a-1  : $a;
}
Avatar billede jesper-madsen Nybegynder
10. august 2005 - 14:36 #15
oki takker
Avatar billede roenving Novice
10. august 2005 - 15:40 #16
Tak for hjælpen ,-(
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