03. februar 2008 - 12:16
Der er
13 kommentarer og 1 løsning
Udregn alder
Dette spørgsmål har været stillet et par gange og har da også prøvet at bruge det til problem, men kunne ikke bruge det. Jeg har en dato i min DB, som ser sådan ud: 1981-06-11. Denne fødselsdato skal så modregnes dags dato, så den hele tiden viser hvor mange år personen er. Kan i hjælpe med det? - rampagezz p.s. skal ud af døren nu, men er hjemme i aften.
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
03. februar 2008 - 14:34
#1
Taget fra manualen ( mysql ) SELECT (YEAR(CURDATE())-YEAR(`datofelt`))-(RIGHT(CURDATE(), 5)< RIGHT(`datofelt`, 5)) as `alder` FROM `dintabel`
03. februar 2008 - 15:50
#2
Den vil ikke skrive alderen ud.. Nu har jeg prøvet med dette: <?php $sql = "SELECT (YEAR(CURDATE())-YEAR(`fdato`))-(RIGHT(CURDATE(), 5)< RIGHT(`fdato`, 5)) as `alder` FROM `members`"; $query = mysql_query($sql) or die(mysql_error()); $row = mysql_fetch_assoc($query); $alder = $row['alder']; ?> <?php echo $row_Recordset1['alder']; ?>
03. februar 2008 - 15:52
#3
Hov så lige at jeg har skrevet Recordset1.. Det er ændret til <?php echo $row['alder']; ?>
03. februar 2008 - 16:24
#4
Kan man skrive alder ud, hvis man modregner "fdato" med PHP ? Noget ala: <?php $fdato = $row['fdato']; $nudato = date('Y-m-d'); $alder = $fdato - $nudato; print $alder; ?> Det skal lige nævnes at jeg ikke er hajen til PHP..
03. februar 2008 - 18:03
#5
Ikke nogen som kan hjælpe?
03. februar 2008 - 18:31
#6
Prøv: dog utestet... <? // Funktionen fdag function fdag($fdag) { if ($fdag !== "0000-00-00") { // Henter nye informationer $nu_dag = date('d'); $nu_maaned = date('m'); $nu_aar = date('Y'); // Udregner alder $del = split('-', $fdag); if (intval($del[2])==0) return ''; $dagen = $del[2]; $maaneden = $del[1]; $aaret = $del[0]; unset($del); $alder = $nu_aar - $aaret - 1; if ($maaneden < $nu_maaned || ($maaneden == $nu_maaned && $dagen <= $nu_dag)) { $alder++; return $alder; } else { return $alder; } } else { $maaneden = 0; $dagen = 0; $aaret = 0; } } // Udskriv din alder her echo fdag(1981-06-11); ?>
03. februar 2008 - 18:32
#7
Ups: echo fdag("1981-06-11");
03. februar 2008 - 19:22
#8
Øhh.. Det virker godt, men hvis jeg nu ændrer dato´en i db'en til "1981-02-02" skriver den stadig 26 ? Den skal kunne trække dato'en i feltet "fdato" i tabellen (members) fra dags dato. Og ikke kun "1981-06-11"..
03. februar 2008 - 19:39
#9
Jeg ved ikke lige hvad du mener, men her er et bud på hvordan du skal: <? // Funktionen fdag function fdag($fdag) { if ($fdag !== "0000-00-00") { // Henter nye informationer $nu_dag = date('d'); $nu_maaned = date('m'); $nu_aar = date('Y'); // Udregner alder $del = split('-', $fdag); if (intval($del[2])==0) return ''; $dagen = $del[2]; $maaneden = $del[1]; $aaret = $del[0]; unset($del); $alder = $nu_aar - $aaret - 1; if ($maaneden < $nu_maaned || ($maaneden == $nu_maaned && $dagen <= $nu_dag)) { $alder++; return $alder; } else { return $alder; } } else { $maaneden = 0; $dagen = 0; $aaret = 0; } } $sql = "HER"; $query = mysql_query($sql) or die(mysql_error()); $row = mysql_fetch_assoc($query); $alder = $row['alder']; echo fdag($row['alder']); ?>
03. februar 2008 - 19:55
#10
Yes.. Nu virker det.. Tusind tak for hjælpen og kom med et svar. :-)
03. februar 2008 - 19:58
#11
Jamen det var da dejlig.. :D
04. februar 2008 - 06:40
#13
Måske fordi dit felt i db ikke er et date felt?
04. februar 2008 - 06:47
#14
<?php $sql = "SELECT (YEAR(CURDATE())-YEAR(`fdato`))-(RIGHT(CURDATE(), 5)< RIGHT(`fdato`, 5)) as `alder` FROM `members`"; $query = mysql_query($sql) or die(mysql_error()); if(mysql_num_rows($query) > 0) { while($row = mysql_fetch_assoc($query)) { echo $row['alder'] .'<br>'; } }else{ echo'No rows'; } ?>
Vi tilbyder markedets bedste kurser inden for webudvikling