Avatar billede pkdkk Nybegynder
02. oktober 2008 - 14:32 Der er 5 kommentarer

Over / Under 18 funktion

Hey..

Jeg har fødselsdatoer der hedder ex.  1985-10-25  eller  1995-05-05  eller    2002-10-20

Hvordan finder jeg ud af om disse personer er over eller under 18?

Gerne som funktion.

/pkdkk
Avatar billede qua Nybegynder
02. oktober 2008 - 15:12 #1
Du kan bruge eksemplet nedenfor til at lave sammenligningen selv. Vær opmærksom på at der dog med stor sandsynlighed findes en funktion i PHP, der kunne gør præcis det samme for dig med et kald.

Psuedo code:
--------------
if (CurrentYear - BirthYear) = 18 then
  //check om vi er forbi birthmonth/birthday
  if (currentMonth = birthmonth) then
      if (currentDay >= birthDay) then
            'over 18
      else
            'still under 18, but almost 18
      end if
  elseif (currentMonth > birthmonth) then
      'under 18
  else
      'over 18
  end if


elseif (currentYear - BirthYear) < 18 then
  'brugeren er under 18
else
  'brugeren er over 18
end if
Avatar billede showsource Seniormester
02. oktober 2008 - 15:12 #2
Med Mysql:
<?php

function tjek_alder($var,$default=18) {

$age = "SELECT (YEAR(CURDATE())-YEAR('".$var."'))-(RIGHT(CURDATE(), 5)<RIGHT('".$var."', 5)) as `alder`";

// Connect hvis der ikke er det i forvejen

$result = mysql_result(mysql_query($age),0);

return ($result >= $default ? true : false);

}


if(true == tjek_alder("1990-10-03")) {
echo"OK";
}else{
echo"Nix";
}

?>
Avatar billede qua Nybegynder
02. oktober 2008 - 15:13 #3
Lille rettelse:
      if (currentDay > birthDay) then
            'under 18
      else
            'over 18 eller lige præcis 18
      end if
Avatar billede pkdkk Nybegynder
02. oktober 2008 - 15:32 #4
Humm.. skal helst bruge det som PHP,. ikke SQL .. og heller ikk ?ASP..
Avatar billede pidgeot Nybegynder
02. oktober 2008 - 15:41 #5
Så længe du altid har foranstillede nuller, så fungerer det her:

function check_age($birthday,$minage=18) {
  return (date('Ymd')-str_replace('-','',$birthday)/10000>=$minage);
}
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