Hallo, Ilona,
hier mein Versuch (bitte ausgiebig testen und Bescheid geben, ob es klappt - es können noch Fehler drin sein!) ...
Grüße,
Sebastian
-------------------- schnipp --------------------
<?php
$gebtag = 22;
$gebmon = 1;
$gebjahr = 1980;
$tagevor = 365;
$tagenach = 14;
// prüfen, ob Geburtstag im laufenden Jahr bereits vorbei ist
$korrekturwert=0;
if($gebmon<date("m")||($gebmon==date("m")&&$gebtag<=date("d")))$korrekturwert=1;
// ich habe den Code für mein besseres Verständnis etwas geändert
// vielleicht war das Original aber auch korrekt
$tage_jetzt = round(time()/(3600*24));
$tmpstmp_gtag = mktime(date(H),date(i),date(s),$gebmon,$gebtag,date(Y)+$korrekturwert);
$tage_gtag = round($tmpstmp_gtag/(3600*24));
$tage_diff = $tage_jetzt-$tage_gtag;
$tage_diff_pos = $tage_diff*-1;
$jahre_gtag = getdate($tmpstmp_gtag); // Array
$jahre = $jahre_gtag["year"]-$gebjahr;
echo "Geburtstag: $gebtag. $gebmon. $gebjahr<br><br>";
echo "Das Subjekt ";
if($tage_diff==0) {echo "wird heute";}
else if(($tage_diff<0)&&(($tage_diff*-1)<=$tagevor)) {echo "wird an seinem nächsten Geburtstag in $tage_diff_pos Tagen";}
else if(($tage_diff>0)&&($tage_diff<=$tagenach)) {echo "wurde vor $tage_diff Tagen";}
else {echo "ist";}
echo " $jahre Jahre alt.<br><br>";
?>