Jan: Alter errechnen

Hi,

ich habe eigentlich nicht direkt ein Problem, wollte nur mal hören, ob mir jemand vielleicht ein paar Denkhilfen geben kann:

Ich möchte errechnen, wann sich ein Timestamp jährt (um ein Geburtstag zu errechnen) d.h, ich brauche den Timestamp des Geburtsjahres und immer den aktuellsten Timestamp. Sobald jetzt z.B
der Timestamp den ich als 23.06.1984 angegeben habe auf das heutige Datum(timestamp) trifft, soll ich sich die Zahl da ich ja jetzt nicht mehr 20 sondern 21 bin um ein Jahr erhöhen...(was ja kein Problem darstellt, wenn das mit den Stamps gegeben ist)

Mein Denkvorgang ist eigentlich ausgereift.. weis nur nicht wie ich es anstellen soll.

Für jeden Hilfevorgang wäre ich dankbar!

Gruß Jan

  1. Moin Jan,

    Ich möchte errechnen, wann sich ein Timestamp jährt (um ein Geburtstag zu errechnen) d.h, ich brauche den Timestamp des Geburtsjahres und immer den aktuellsten Timestamp. Sobald jetzt z.B
    der Timestamp den ich als 23.06.1984 angegeben habe auf das

    wenn Du im nachfolgenden Code die Variablen:
    $g_tag  = 19;
    $g_monat= 04;
    $g_jahr = 2001;

    durch Deinen Timstamp generieren kannst, dann sollte es das sein ;-)

    $Current_Year=date("Y");
    $Current_Month=date("m");

    if ( $Current_Month == 1 )
       $Current_Year--;

    $This_Year=$Current_Year;

    $g_tag  = 19;
    $g_monat= 04;
    $g_jahr = 2001;

    $n_tag  = date("d");
    $n_monat= date("m");
    $n_jahr = date("Y");

    $g_date=mktime(0,0,0,$g_tag,$g_monat,$g_jahr);

    if ( ($n_monat>$g_monat) || ( ($n_monat == $g_monat) && ($n_tag>$g_tag) ) || (($n_monat == $g_monat) && ($n_tag==$g_tag) ) )
       {
          $alterj=$n_jahr-$g_jahr;
       }
    else
       {
          $alterj=$n_jahr-$g_jahr-1;
       }

    if ( ($n_monat>$g_monat) || ( ($n_monat == $g_monat) && ($n_tag>$g_tag) ) || ( ($n_monat == $g_monat) && ($n_tag==$g_tag) ) )
       {
          $alterm=$n_monat-$g_monat;
       }
    else
       {
          $alterm=12-$g_monat+$n_monat;
       }

    if ( ($n_tag>$g_tag) || ($n_tag==$g_tag) )
       {
          $altert=$n_tag-$g_tag;
       }
    else
       {
          $tage=date("t",$g_date);
          $altert=$tage-$g_tag+$n_tag;
          $alterm=$alterm-1;
       }

    regds
    Mike©

    --
    Freunde kommen und gehen. Feinde sammeln sich an.
  2. n'abend,

    Mein Denkvorgang ist eigentlich ausgereift.. weis nur nicht wie ich es anstellen soll.

    scheint mir nicht so... :/
    was passiert wenn ich 1955 geboren wurde?
    der timestamp geht nur bis 1970 runter ;)

    du solltest also das datum als date speichern, nicht als timestamp.

      
    // format: jahr-monat-tag (wenn du das date format bei z.b. mysql benutzen willst...)  
    $myBirthday = '1955-07-07';  
    $e = explode('-',$myBirthday);  
    // geburtsjahr von heute abziehen (2005-1955 = 50)  
    $alter = date("Y")-$e[0];  
    // geburtstag dieses jahr schon vorbei? (im beispiel nicht, also ein jahr abziehen)  
    if (time() < mktime(0,0,0,$e[1],$e[2],date("Y"))) $alter--;  
      
    echo 'du bist heute '.$alter.' jahre alt...';  
      
    
    

    (lasse mich gerne über einen effizienteren weg belehren ;))

    weiterhin schönen abend...

    --
    wer braucht schon großbuchstaben?