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
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
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