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
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
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";
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";
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 ;)
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);
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 :(
16. januar 2007 - 21:40
#6
okay det er her så. virkede det også med bindestreg istedet for punktum?
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];
16. januar 2007 - 21:43
#8
Nej, kan ikke få det til at virke :(
16. januar 2007 - 21:46
#9
hvordan ser din kode ud?
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>"; } ?>
16. januar 2007 - 21:50
#11
prøv $alder = "$fdagaar.$fdagmaaned.$fdagdag";
16. januar 2007 - 21:52
#12
Hmm, nej for det er ikke sådan som det står i databasen
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>"; } ?>
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
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];
16. januar 2007 - 22:13
#16
Det virker nu, jeg takker du har fået point ;)
16. januar 2007 - 22:18
#17
perfekt :-)
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"];
Vi tilbyder markedets bedste kurser inden for webudvikling