Seite 1 von 1

Durch Geburtsdatum Alter ausgeben

Verfasst: 03.02.2010, 23:18
von masterronnow
Hallo,

ich bräuchte für meine Teameseite (http://team.ultimatic-chat.de.tp) ein Script oder ähnliches, mit dem ich das Alter alleine durch das Geburtsdatum ausgeben lassen kann.

Würde mich über Hilfe und Antworten freuen.

Viele Grüße
masterronnow

Re: Durch Geburtsdatum Alter ausgeben

Verfasst: 04.02.2010, 16:18
von Linus

Code: Alles auswählen

<?php 
function getAge($datum) {
$date_elements  = explode(".",$datum);
$stamp = mktime(0,0,0,$date_elements[1],$date_elements[0],$date_elements[2]);
$age=floor((time()-$stamp)/(60*60*24*365));
return $age;
}?>
Diese Funktion gibt dir das Alter zurück wenn du sie mit einem Datum der Form DD.MM.YYYY fütterst. Beispiel:

Code: Alles auswählen

<?php echo getAge("1.1.1990"); ?>
Würde 20 ausgeben... ob du vor die Tage und Monate eine 0 setzt ist egal, aber das Jahr MUSS komplett angegeben sein.

Viel Spaß damit ;)

Re: Durch Geburtsdatum Alter ausgeben

Verfasst: 04.02.2010, 16:59
von masterronnow
Hallo,

funktioniert so schon mal ganz gut. Dankeschön.

Nun aber noch die Frage ob es die Möglichkeit gibt, das wenn derjenige Geburtstag hat, dass das dann so aussieht:

16 ...hat heute Gebrustag (smilie)

Das ganze am besten fett gedruckt und natürlich schon das aktuelle Alter.

Viele Grüße
masterronnow

Re: Durch Geburtsdatum Alter ausgeben

Verfasst: 04.02.2010, 18:38
von Linus
Es wäre einfacher wenn du deine Wünsche alle direkt am Anfang nennst ;)

Code: Alles auswählen

<?php 
function getAge($datum) {
$date_elements  = explode(".",$datum);
$stamp = mktime(0,0,0,$date_elements[1],$date_elements[0],$date_elements[2]);
$age=floor((time()-$stamp)/(60*60*24*365));
if (date("d") == $date_elements[0] && date("m") == $date_elements[1]){
$ausgabe="<b>Hat heute den $age. Geburtstag!</b><img src='smilieurl'>";
}else{
$ausgabe=$age;
}
return $ausgabe;
}?>
Der Rest kann so beibehalten werden...

Re: Durch Geburtsdatum Alter ausgeben

Verfasst: 04.02.2010, 18:54
von masterronnow
Ist mir eben erst eingefallen, sorry!

Trotzdem danke =)

Viele Grüße
masterronnow

Re: Durch Geburtsdatum Alter ausgeben

Verfasst: 08.02.2010, 20:46
von masterronnow
Hallo,

habe da ein Problem. Jemand der erst am 12.02 geburtstag hat, hatte bereits. Also dort steht jetzt z.B. statt noch 17 schon 18.

Viele Grüße
masterronnow

Re: Durch Geburtsdatum Alter ausgeben

Verfasst: 08.02.2010, 21:07
von Linus
Kommt vor weil da mehrere Schaltjahre zwischen lagen, die ich nicht berücksichtigt hab...

Code: Alles auswählen

function getAge($datum) {
$date_elements  = explode(".",$datum);
$age = date("Y")-$date_elements[2]-1;
if (date("m") >= $date_elements[1]){
	if (date("d") >= $date_elements[0]){
		$age++;
	}
	if (date("d")==$date_elements[0]){
		$birthday=true;
	}
}
$ausgabe=($birthday)?"<b>Hat heute den $age. Geburtstag!</b><img src='smilieurl'>":$age;
return $ausgabe;
}
Habs grad getestet und funzt so :)

Re: Durch Geburtsdatum Alter ausgeben

Verfasst: 08.02.2010, 21:39
von masterronnow
Hallo,

dankeschön. Alter stimmt wieder.

Viele Grüße
masterronnow

Re: Durch Geburtsdatum Alter ausgeben

Verfasst: 03.03.2010, 21:22
von masterronnow
Hallo,

nun stimmt das alter nicht mehr. Hatte vor kurzem Geburtstag. Hat es auch angezeigt, aber am nächsten Tag stand dort dann wieder 16 statt 17.

Kann da bitte jemand helfen?

Viele Grüße
masterronnow

Re: Durch Geburtsdatum Alter ausgeben

Verfasst: 06.03.2010, 19:56
von masterronnow
*push

Re: Durch Geburtsdatum Alter ausgeben

Verfasst: 06.03.2010, 21:51
von Linus

Code: Alles auswählen

function getAge($datum) {
$date_elements  = explode(".",$datum);
$age = date("Y")-$date_elements[2]-1;
if (date("m") == $date_elements[1]){
	if (date("d") >= $date_elements[0]){
		$age++;
	}
	if (date("d")==$date_elements[0]){
		$birthday=true;
	}
}elseif (date("m") > $date_elements[1]){
	$age++;
}
$ausgabe=($birthday)?"<b>Hat heute den $age. Geburtstag!</b><img src='smilieurl'>":$age;
return $ausgabe;
}
Sollte nun wieder gehen...

Re: Durch Geburtsdatum Alter ausgeben

Verfasst: 06.03.2010, 22:25
von masterronnow
Jap, danke.