Avatar billede jacob-85 Nybegynder
16. januar 2007 - 21:22 Der er 17 kommentarer og
1 løsning

Hvordan omregner man år-måned-dag til alder

Hvis jeg har en fødselsdato f. eks 1984-8-28

Hvordan kan jeg så lave et PHP script som omregner det til en fødselsdag?

Mvh Jacob
Avatar billede michaeltryl Seniormester
16. januar 2007 - 21:28 #1
$idag = date("Y") . date("m") . date("d");
$birth = $aar . $maaned . $dato;
$alder = substr($idag - $birth,0,-4);

echo"$alder";
Avatar billede jacob-85 Nybegynder
16. januar 2007 - 21:32 #2
Problemet er at jeg har 1984-8-28 stående i en database

Så så jeg trækker den ud så kommer den til at stå i en varialbe som f. eks:

$foedselsdag = "1984-8-28";
Avatar billede jacob-85 Nybegynder
16. januar 2007 - 21:37 #3
Ah mig der lige sover...

Det virker perfekt, jeg takker mabge gange...

Smid et svar så får du point ;)
Avatar billede michaeltryl Seniormester
16. januar 2007 - 21:39 #4
prøv istedet for 1984-8-28 at henter den ud sådan
$foedselsdag = "1984-8-28"; og så gør sådan

$idag = date("Y") . date("m") . date("d");
$birth = $foedselsdag;
$alder = substr($idag - $birth,0,-4);
Avatar billede jacob-85 Nybegynder
16. januar 2007 - 21:39 #5
Og det gør det jo så ikke helt alligevel da jeg først skal opdele variablen

$foedselsdag = "1984-8-28";

op i:

$aar
$maaned
$dato

og det er det jeg ikke kan finde ud af :(
Avatar billede michaeltryl Seniormester
16. januar 2007 - 21:40 #6
okay det er her så. virkede det også med bindestreg istedet for punktum?
Avatar billede michaeltryl Seniormester
16. januar 2007 - 21:42 #7
sådan her henter jeg dem ud

$hent = mysql_query("SELECT *, DATE_FORMAT(birth, '%d') AS dato, DATE_FORMAT(birth, '%m') AS maaned, DATE_FORMAT(birth, '%Y') AS aar FROM brugere WHERE brugerid = '$id'") or die(mysql_error());
$show = mysql_fetch_array($hent);

$dato = $show[dato];
$maaned = $show[maaned];
$aar = $show[aar];
Avatar billede jacob-85 Nybegynder
16. januar 2007 - 21:43 #8
Nej, kan ikke få det til at virke :(
Avatar billede michaeltryl Seniormester
16. januar 2007 - 21:46 #9
hvordan ser din kode ud?
Avatar billede jacob-85 Nybegynder
16. januar 2007 - 21:48 #10
Dette her er bare lavet lige til at teste det, men er bare for at slippe for at bruge databasen, men er jo den samme Streng den skal bruge...

<?
if(!empty($_POST[submit])){

$fdagdag=$_POST[fdagdag];
$fdagmaaned=$_POST[fdagmaaned];
$fdagaar=$_POST[fdagaar];

$alder = "$fdagaar-$fdagmaaned-$fdagdag";

$idag = date("Y") - date("m") - date("d");
$birth = $alder;
$alderen = substr($idag - $birth,0,-4);

echo"$alderen <br>";

echo"$alder <br>";

}
?>
Avatar billede michaeltryl Seniormester
16. januar 2007 - 21:50 #11
prøv
$alder = "$fdagaar.$fdagmaaned.$fdagdag";
Avatar billede jacob-85 Nybegynder
16. januar 2007 - 21:52 #12
Hmm, nej for det er ikke sådan som det står i databasen
Avatar billede michaeltryl Seniormester
16. januar 2007 - 21:56 #13
det er lige meget hvordan det står i databasen, det kan du lave om når du henter det ud.jeg har også til at stå sådan her aar-maaned-dag i databasen.

virker det hvis du går sådan
<?
if(!empty($_POST[submit])){

$fdagdag=$_POST[fdagdag];
$fdagmaaned=$_POST[fdagmaaned];
$fdagaar=$_POST[fdagaar];

$alder = "$fdagaar.$fdagmaaned.$fdagdag";

$idag = date("Y") - date("m") - date("d");
$birth = $alder;
$alderen = substr($idag - $birth,0,-4);

echo"$alderen <br>";

}
?>

ellers prøv

<?
if(!empty($_POST[submit])){

$fdagdag=$_POST[fdagdag];
$fdagmaaned=$_POST[fdagmaaned];
$fdagaar=$_POST[fdagaar];


$idag = date("Y") - date("m") - date("d");
$birth = $fdagaar . $fdagmaaned . $fdagdag;
$alderen = substr($idag - $birth,0,-4);

echo"$alderen <br>";

}
?>
Avatar billede jacob-85 Nybegynder
16. januar 2007 - 22:04 #14
<?
if(!empty($_POST[submit])){

$fdagdag=$_POST[fdagdag];
$fdagmaaned=$_POST[fdagmaaned];
$fdagaar=$_POST[fdagaar];


$idag = date("Y") . date("m") . date("d");
$birth = $fdagaar . $fdagmaaned . $fdagdag;
$alderen = substr($idag - $birth,0,-4);

echo"$alderen <br>";

}
?>

Virker fint, men det hjælper mig jo ikke meget, der skal jeg stadig bruge de 3 særskilte variabler...

Har jo kun en variable i databasen, og den se sådan her ud: $alder = "YYYY-MM-DD";

Og har ingen ide om hvordan jeg deler den op i de 3
Avatar billede michaeltryl Seniormester
16. januar 2007 - 22:07 #15
det kan du gøre sådan her.
nedstående er den forspørgsel jeg bruger til at hente de tre variabler ud
DATE_FORMAT(birth, '%d') henter datoen i feltet birth i databsen
DATE_FORMAT(birth, '%m') henter måned
DATE_FORMAT(birth, '%Y') henter år
------------------------

$hent = mysql_query("SELECT *, DATE_FORMAT(birth, '%d') AS dato, DATE_FORMAT(birth, '%m') AS maaned, DATE_FORMAT(birth, '%Y') AS aar FROM brugere WHERE brugerid = '$id'") or die(mysql_error());
$show = mysql_fetch_array($hent);

$dato = $show[dato];
$maaned = $show[maaned];
$aar = $show[aar];
Avatar billede jacob-85 Nybegynder
16. januar 2007 - 22:13 #16
Det virker nu, jeg takker du har fået point ;)
Avatar billede michaeltryl Seniormester
16. januar 2007 - 22:18 #17
perfekt :-)
Avatar billede showsource Seniormester
17. januar 2007 - 05:46 #18
Du kan også hente alder i din query

$sql = "SELECT (YEAR(CURDATE())-YEAR(birth))-(RIGHT(CURDATE(), 5)<RIGHT(birth, 5)) as `alder` FROM `tabel`";

$row = mysql_query($sql) or die (mysql_error());
$how = mysql_fetch_array($row);
echo $show["alder"];
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