Datum -> Alter

  • Hallo

    Ich möchte für mein Forum (wo man sein Geburtsdatum eingeben kann) ein scrip schreiben welches das alter aus dem angegebenen datum ausgibt...

    ich habe das schon so gemacht dass ich jetzt eine variable habe:

    $geburtsdatum = $userdata['user_birthday'];

    und das datum steht dann immer so drinnen:

    02.04.1981
    12.08.1991
    03.02.1800
    ...

    wie kann ich jetzt daraus das geburtsdatum herausfinden??

    also aus dem datum??

    danke für hilfe

  • ich möchte aus den angegebenen geburtsdatum (zB 08.06.1991) ein alter herrausfinden mit php, in dem fall wäre das 15...

    jetzt klar?

  • timestamp heutiges datum nehmen
    timestamp damaliges datum nehmen, verrechnen und dann die das resultierende jahr auslesen. nun noch gucken ob monat und tag davor oder danach sind und schwupps haste das alter.

  • aber ich brauchs in nem php code plz... in so logischem zeug bin ich nich so gut.. danke

  • hallo

    hm - musste ich auch mal machen und hatte zT. schwierigkeiten dass es das alter wirklich genau berechnet. habs jetzt mittlerweile auf +/- ein tag, ich glaube das alter wird ein tag "zu früh" umgeschaltet. vielleicht weiss ja jemand weiter:

    aufrufen kannst du es so:

    Code
    echo $geburtsdatum." (".alter($geburtsdatum).")";

    so long

  • hmm, wieso versuchen bloss immer mehr leute mit php objekt orientiert zu programmieren . . .tz tz tz lahm doch nur aus...
    naja.

    ich aktualisieren den post nacher mti dem passenden code

  • wie du allerdings den string in 3 ints umwandelst musst du selbst schauen! ich kenn mich mit regexp leider nicht aus


  • Moin!

    Zitat von dragoni

    du musst eben monat tag und jahr trennen!

    Genau das istd er richtige Lösungsansatz, da es timestrings vor 1970 nicht gibt.
    Das braucht ma auch gar nicht:

    1. Schritt: Geburtsjahr vom aktuellen Jahr abziehen = das Alter, welches dieses Jahr erreicht wird oder wurde.

    2. aktuelles Jahr + Geburtsmonat + Geburtstag zu einem timestring machen und mit dem timestring von heute vergleichen. Ist 'heute' kleiner als der erstellte Timestring, steht der Geburtstag dieses Jahr noch aus und von den errechneten Jahren wird eins abgezogen.

    Thats all....

    G.a.d.M.

    Ronald

  • also, meine loesung ist voellig korrekt, ich habe sie getestet. du musst aus dem strin nummal die letzten vier auslesen und in ne int packen. das wird wohl dank selfphp nicht zuviel sein oder?
    die ersten 2 auslesen und dann 4 und 5 auslesen. dann kansnte meinen code verwenden

  • das ist doch alles im code drinne :D teste ihn aus! er funktioniert.



    so, den code kannst du verwenden! ich hab es so gemacht, dass er den string auftrennt. du musst nur noch "geburstsdatum" mit deiner variablen ersetzen. und schon gehts :D


    keine sorge ! alles dabei!


    ich nehme das datum, also 2007 - das geburtsjahr 1925. dadurch habe ich die differenz in jahren. da ist 1970 egal. ich nehme ja nicht den timesstamp und ziehe ihn ab. sonst waere das vielmehr aufwand. 2 zeilen mehr an code :D

  • Zitat von dragoni

    ich nehme das datum, also 2007 - das geburtsjahr 1925. dadurch habe ich die differenz in jahren. da ist 1970 egal. ich nehme ja nicht den timesstamp und ziehe ihn ab. sonst waere das vielmehr aufwand. 2 zeilen mehr an code :D

    ja wahrlich, da hast du recht:

    Oder doch nicht ?
    Falls du nachzählen möchtest: meine Formel hat 5 Zeilen, deine 19.

    G.a.d.M.

    Ronald

  • naja, ich hab halt mal schnell was hingekrakelt :D
    mir viel auch nichts ein wie ich das trennen sollte. ich war bei php noch nie in der richtung. ich war eher auf design und grafik. naja, man lernt immer was dazu :D

    ok, nun hat der gast auf jedenfall 2 moeglichkeiten. eine sieht besser aus und die andere nach mehr *g

  • Zitat von dragoni

    mir viel auch nichts ein wie ich das trennen sollte.

    Dazu dann schnell noch ein Tip:

    Schau dir mal 'substr' an:

    Code
    $Tag = substr($geburtstag,0,2);
    $Monat= substr($geburtstag,3,2);
    $Jahr = substr($geburtstag,6,4) oder substr($geburtstag,-4);

    G.a.d.M.

    Ronald