Alter berechnen

g-zus

Erfahrenes Mitglied
Hi Leude,

hab grad ne kleine Denkblockade und komm einfach nicht auf die Lösung.
Mein Problem:

Ich hab ne Datenbank mit lauter Personendaten drinnen.
Mit dabei sind auch die Datumsangaben der Geburtstage der Personen.

Nun hab ich ein Formular, das die Daten ausliest und ausgibt.
Jetzt wollte ich mit dem angegebenen Geburtstag das Alter berechnen.
Das blöde ist halt, dass ich es so gemacht habe, dass ich das Datum in 3 Teile unterteil habe:

Tag: birthdate_d
Monat: birthdate_m
Jahr: birthdate_y

Das hab ich gemacht, dass jeder das Datum so genau angeben kann wie er will.
Also z.b. nur Jahr, oder nur Monat und Jahr etc.

Daraus wollte ich jetzt berechnen, wie alt der Typ dann is.

An und für sich glaub ich keine allzuschwere rechenaufgabe, aber wie schon gesagt, ich bin grad bissel verwirrt und hab ne kleine denkblockade, weil ich lauter anderes zeug im Kopf hab! :p

Ich hoffe, jemand ist nicht ganz so verwirrt wie ich es gerade bin und kann mir helfen.........:-)


THX schon mal!
 
okey,

dann wollen wir mal. zuerst fügst du deine daten (tag, monat, usw. zusammen ins format welches ich unten im beispiel benutze ("Tag Monat Jahr) Das geht mit str_replace und und switch und solchen sachen, wenn dus nicht checkst, einfach fragen. Dann machst du daraus einen timestamp und vergleichst den mit dem heutigen datum:

PHP:
$sekunden = strtotime("18 November 1984");
$alter = time()-$sekunden; //ergibt das alter in sekunden
$alter = $alter/3600;
$alter = $alter/24;
$alter = $alter/7;
$alter = $alter/52;

dieses beispiel gibt jetzt die jahre aus. in meinem fall ca. 18 (hab heute geburtstag... *freu*)... ich hoffe das hilft dir aus deiner denkkrise... ;)

gecheckt? der quelltext oben stimmt wahrscheinlich nicht genau,
 
also noch "unauffälliger" kann man ja ned auf seinen geburstag hinweisen....
wie jämmerlich! :)

ne, alles gute und danke für die lösung.
also wenn das


strtotime("18 November 1984")


von PHP angenommen wird dürfte es keine Probleme geben!
ich probiers mal aus.
THX....

Edit:
~~~~

Ach ja, integer muss man halt spätestens beim letzten Dividieren verwenden. Einfach die ganze division zu iner zusammenfassen und integer rum, weil werd will denn gerne wissen ob er jetzt 17,893647 Jahre alt is?!? :p

Wie is eigentlich der Integerbefehl bei PHP? int(zahl) ?

also int(zahl) is es nicht! 8)

ach ja, ganz vergessen:

Alles gute zum gebirtstag! h3h3

ich such einfach schnell integerfunktion im forum!
den das andere hat funktioniert, thx!
 
Zuletzt bearbeitet:
******** leude, stell ich much zu dumm an oder is das eine so einfache frage, dass sie hier noch nie gestellt wurde?
also mit suchfunktion gabs nix....

so, jetzt, wie heisst die integerfunktion in PHP?
ich hab bei php.net oder wo nur is_integer gefunden, um zu prüfen obs einer is, mehr aber ned.

Also, ich hab die zahl 17,8 und will daraus 17 machen, jetzt wie mach ich das.
in mathe schreibt man ja [17.8]=17 und in Flash z.B. int(17.8)=17;

aber in PHp krieg ichs wieder ned hin...... :)
ah, zum verzweifeln! :p
 
die rettung kommt mal wieder in form von antihero...

weil du mir auch schön artig gratuliert hast gibts hier die lösung:

die funktion heisst intval... also zB. intval("12.87") ergibt dann 12... ich denke danach suchst du... ;)

der rest scheint ja zu funktionieren... :D

antihero
 
ne, round() rundet, zB. 15,6 auf 16 und du bist ja erst sechzehn wenn du eben 16,000000 bist, und wenn du 15,999999 bist, biste immer noch 15 jahre alt... so einfach ist das.

deswegen intval()...

antihero
 
kommt doch aufs selbe resultat wie intval()....?

//edit: okey, habe php.net nachgelesen... sam hat tatsächlich recht, intval() funktioniert zwar auch, ist aber nicht so elegant wie floor()... aber wer will heutzutage schon elegant sein???

antihero
 
lol

bin grad dabei c++ zu lernen (dass ich wenigstens eine sprache beherrsche! :) ) und da heissts im buch auch immer "elegante lösung". h3h3

naja, auf jedenfall danke leute.
jetzt dürfte es klappen (das schwerste war herauszufinden wie man die Monate in Englisch schreibt! :p ).
 
Zurück