login  Naam:   Wachtwoord: 
Registreer je!
 Forum

leeftijd uitrekenen (Opgelost)

Offline compudoc - 20/03/2007 17:40
Avatar van compudocPHP beginner ik heb in de database (MySQL) in de kolom leeftijd je geboortedatum opgeslagen: 2007-03-20

nou mijn vraag:
Hoe kan ik dit omrekenen dat er ipv je geboortedatum je leeftijd komt te staan.

Alvast bedankt

14 antwoorden

Gesponsorde links
Offline Ibrahim - 20/03/2007 17:43
Avatar van Ibrahim PHP expert met behulp van de date functies van mysql.

De huidige datum - geboortedatum.
Offline compudoc - 20/03/2007 17:46
Avatar van compudoc PHP beginner hoe moet ik het precies doen dan want ik snap er niks van wat daar staat en hoe ik het dan moet gebruiken voor mijn doel. (ik had er al gekeken)
Offline Ibrahim - 20/03/2007 17:50
Avatar van Ibrahim PHP expert http://www.site...#inleiding
Offline compudoc - 20/03/2007 18:19
Avatar van compudoc PHP beginner kan iemand me een beetje op weg helpen want ik kom er niet helemaal uit.
Offline TotempaaltJ - 20/03/2007 18:21
Avatar van TotempaaltJ PHP interesse
  1. <?php
  2. // Nodig: 1 variable: $geboortejaar
  3. $jaarnu = date('Y');
  4.  
  5. $leeftijd = $jaarnu - $geboortejaar;
  6. ?>

Volgens mij moet dit werken... (ik heb niet zo'n verstand van de PHP Calc dus als het niet werkt...)
Offline Stijn - 20/03/2007 18:24 (laatste wijziging 20/03/2007 18:59)
Avatar van Stijn PHP expert
  1. <?php
  2. // Nodig: 1 variable: $geboortejaar
  3.  
  4. $geboortejaar = mysql_result( mysql_query("SELECT DATE_FORMAT('leeftijd' , '%Y') AS geboorte_datum FROM table") , 0);
  5.  
  6. $jaarnu = date('Y');
  7.  
  8. $leeftijd = $jaarnu - $geboortejaar;
  9. ?>

Even een update gedaan aan het script van Bigboss.

@Boukefalos: ja ik had het ook eerst zo maar ik wist niet of dat delen wel ging kloppen.
Offline JBke - 20/03/2007 18:31 (laatste wijziging 20/03/2007 18:43)
Avatar van JBke PHP gevorderde ik gebruik het volkgende omdat bovenstaande voorbeeldberekeningen geen rekening houden met of je al dan niet reeds verjaard bent dat jaar.

  1. <?
  2. function bereken_Leeftijd($geb_dag, $geb_maand, $geb_jaar)
  3. {
  4. $dag = date("j");
  5. $maand = date("m");
  6. $jaar = date("Y");
  7.  
  8. $leeftijd = ($jaar - $geb_jaar - 1);
  9. if($geb_maand < $maand) {
  10. $leeftijd += 1;
  11. } elseif($geb_maand == $maand && $geb_dag <= $dag) {
  12. $leeftijd += 1;
  13. }
  14. return $leeftijd;
  15. }
  16. ?>


grtz en laat even weten of je dit geholpen heeft.
Offline Rik - 20/03/2007 18:50
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Dit kan toch ook allemaal gelijk in mysql?
  1. SELECT naam, FLOOR(DATEDIFF(CURDATE(), geboortedatum) / 365) AS leeftijd FROM `leeftijd`

Het aantal dagen tussen je geboorte en de huidige dag kan je delen door 365 om het aantal jaren dat iemand geleefd heeft te krijgen. Je begint de leeftijd te tellen op nul dus je rond af naar beneden met FLOOR().
Offline JBke - 20/03/2007 18:57
Avatar van JBke PHP gevorderde tuurlijk kan het allemaal in mysql en er zijn zoveel manieren maar mijn manier kan je ook gebruiken zonder MySql database.

Als je inderdaad een volledige datum gebruikt moet je hem opdelen in dag, maand en jaar. Omdat je meestal toch steeds dag, maand en jaar opgeeft en je dus onmiddelijk na ingave en voor het verwerken van de data de leeftijd kan berekenen. ik slaag dus gewoon geboortedatum EN leeftijd op ipv het steeds elke keer te gaan berekenen als ik de laaftijd van een user wens te gebruiken. (minder belastend indien 1 keer berekend ipv elke keer te berekenen).

Grtz.
Offline Ibrahim - 20/03/2007 18:59
Avatar van Ibrahim PHP expert in SQL meteen alles doen is veeeeeeeeel sneller dan het door php te laten doen hoor 

offtopic:

hou alsjeblieft op met die grtz onder elk bericht 
Offline Gerard - 20/03/2007 19:03
Avatar van Gerard Ouwe rakker
  1. FLOOR(PERIOD_DIFF(DATE_FORMAT(CURDATE(), '%Y%m'), DATE_FORMAT(u.birthday, '%Y%m')) / 12) AS age
Dit is de oplossing die ik gebruik. Delen door 365 is wel te doen maar was mij niet accuraat genoeg.
Offline compudoc - 20/03/2007 19:18 (laatste wijziging 20/03/2007 19:34)
Avatar van compudoc PHP beginner bedankt voor alle reacties

-EDIT-

heb het scriptje van JBke toch maar niet gebruikt maar die van Proximus en het werkt erg goed
Offline Gerard - 20/03/2007 19:28
Avatar van Gerard Ouwe rakker In mijn geval heb je alleen een veld nodig genaamd 'birthday' welke van het DATE formaat is (DATETIME mag dus ook wel). Natuurlijk sta je vrij die naam te veranderen.
Offline compudoc - 20/03/2007 19:33
Avatar van compudoc PHP beginner @proximus, bedankt
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.293s