/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
kalkulere alder
Fra : Andreas


Dato : 21-06-02 10:09

Hei,

Har veldig liten erfaring med PHP, men håper noen kan hjelpe meg litt.
I en SQL database over medlemmer har jeg feltet "fodselsdato". Feltene vises
slik "1976-04-08". Hvordan kan jeg benytte dette feltet til å regne ut
alderen, slik at websiden viser alder i tillegg til fodselsdato?
På forhånd takk!



 
 
Sune Fibæk (21-06-2002)
Kommentar
Fra : Sune Fibæk


Dato : 21-06-02 11:36

Andreas wrote:

> Hei,
>
> Har veldig liten erfaring med PHP, men håper noen kan hjelpe meg litt.
> I en SQL database over medlemmer har jeg feltet "fodselsdato". Feltene
> vises slik "1976-04-08". Hvordan kan jeg benytte dette feltet til å regne
> ut alderen, slik at websiden viser alder i tillegg til fodselsdato?
> På forhånd takk!

Noget i retning af:

<?php
$dato="1976-04-08"; //under antagelse af at det er YYYYMMDD
$dato=explode("-",$dato);
$alder = (date(U)-mktime(0,0,0,$dato[1],$dato[2],$dato[0]))/(60*60*24*365);
echo "Du er $alder år gammel";
?>

burde kunne klare det. Du bør jo nok runde alderen ned eller noget i den
retning. F.eks. med floor. Du kan også bare vise alderen i sekunder :)

--

Mvh.
Sune Fibæk

Ruben Hesselbæk (21-06-2002)
Kommentar
Fra : Ruben Hesselbæk


Dato : 21-06-02 14:47


"Sune Fibæk" <oh-wonderful-spam@fibaek.dk> wrote in message
news:3d130f0f$0$246$ba624c82@nntp03.dk.telia.net...
> Andreas wrote:
>
> > Hei,
> >
> > Har veldig liten erfaring med PHP, men håper noen kan hjelpe meg litt.
> > I en SQL database over medlemmer har jeg feltet "fodselsdato". Feltene
> > vises slik "1976-04-08". Hvordan kan jeg benytte dette feltet til å
regne
> > ut alderen, slik at websiden viser alder i tillegg til fodselsdato?
> > På forhånd takk!
>
> Noget i retning af:
>
> <?php
> $dato="1976-04-08"; //under antagelse af at det er YYYYMMDD
> $dato=explode("-",$dato);
> $alder =
(date(U)-mktime(0,0,0,$dato[1],$dato[2],$dato[0]))/(60*60*24*365);
> echo "Du er $alder år gammel";
> ?>
>
> burde kunne klare det. Du bør jo nok runde alderen ned eller noget i den
> retning. F.eks. med floor. Du kan også bare vise alderen i sekunder :)
>
> --
>
> Mvh.
> Sune Fibæk
Du kan evt. også håndtere det hele igennem SQL
query = "select round((TO_DAYS(NOW())-TO_DAYS(fodselsdato))/365) as alder"
Så får du alderen i hele år.

Venlig hilsen
Ruben Hesselbæk



Sune Fibæk (21-06-2002)
Kommentar
Fra : Sune Fibæk


Dato : 21-06-02 18:08

Ruben Hesselbæk wrote:


> Du kan evt. også håndtere det hele igennem SQL
> query = "select round((TO_DAYS(NOW())-TO_DAYS(fodselsdato))/365) as alder"
> Så får du alderen i hele år.

Men det giver problemer når fødselsdatoen står på formen YYYY-MM-DD (med
bindestreger). Det er vel lagret som varchar (eller tilsvarende
tekststreng) i databasen, og så det giver ikke mening at lave beregninger
med tallene :)

>
> Venlig hilsen
> Ruben Hesselbæk

/Sune

Søren Lund Jensen (21-06-2002)
Kommentar
Fra : Søren Lund Jensen


Dato : 21-06-02 18:21

"Andreas" <nordrum@c2i.net> wrote in message
news:J2CQ8.319$Q12.9158@news4.ulv.nextra.no...

> Har veldig liten erfaring med PHP, men håper noen kan hjelpe meg litt.
> I en SQL database over medlemmer har jeg feltet "fodselsdato". Feltene
vises
> slik "1976-04-08". Hvordan kan jeg benytte dette feltet til å regne ut
> alderen, slik at websiden viser alder i tillegg til fodselsdato?

Hvis du har et felt i databasen, som er af typen date, kan du køre en
DATE_FORMAT på feltet og så kun bede om at få året ud. Herefter er det meget
nemt at regne alderen ud.



Anders H. Jørgensen (23-06-2002)
Kommentar
Fra : Anders H. Jørgensen


Dato : 23-06-02 00:13

On Fri, 21 Jun 2002 09:08:57 GMT, "Andreas" <nordrum@c2i.net> wrote:

>Hei,
>
>Har veldig liten erfaring med PHP, men håper noen kan hjelpe meg litt.
>I en SQL database over medlemmer har jeg feltet "fodselsdato". Feltene vises
>slik "1976-04-08". Hvordan kan jeg benytte dette feltet til å regne ut
>alderen, slik at websiden viser alder i tillegg til fodselsdato?
>På forhånd takk!
>


Sådan her har jeg løst nøjagtig samme "problem":
Her får du den nøjagtige "dynamiske" alder:

//Start med at splitte
//$Year2 = YY fra databasen eller en htmlform
//$mon2 = MM fra databasen...
//$day2 = DD fra databasen....


//altså
$birthday=("19".$year2.-$mon2.-$day2); //


function get_Age($birthday){

$today = getdate();
$month = $today['mon'];
$day = $today['mday'];
$year = $today['year'];

list ($byear, $bmonth, $bday) = split ('-', $birthday);


$rawage = $year-$byear;

if ($month < $bmonth)
{
   $age = $rawage-1;
}
elseif
($month == $bmonth AND $day < $bday)


{
   $age = $rawage-1;
}
elseif ($byear == 0)
   {
   $age = "Unknown";
   }
else
{
   $age = $rawage;
   }
echo "Du er ".$age." år gammel";


}



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste