phpbar.de logo

Mailinglisten-Archive

[php] Altersberechnung

[php] Altersberechnung

Mathias Meyer Meyer_(at)_mediaworx.com
Tue, 21 Nov 2000 10:16:36 +0100


> -----Original Message-----
> From: Christian Thiele [mailto:Christian.Thiele_(at)_brokat.com]
> Sent: Tuesday, November 21, 2000 9:01 AM
> To: php_(at)_php-center.de
> Subject: [php] Altersberechnung
> 
> Hi,
> 
> hat jemand zufällig den Code parat um das Alter ein Person 
> anzuzeigen wenn
> ich nur sein Geburtsdatum in der DB habe ( Beispiel 
> 12.12.1972 ) und ich
> möchte nicht sein G-Datum anzuzeigen sondern das korrekte Alter...
> 
Japp:

function getAge( $birthDate ) {
	$birthArray = explode( ".", strval( $birthDate ) );
	$nowArray = getdate( time() );
	$nowArray = array( $nowArray['mday'], $nowArray['mon'],
$nowArray['year'] );
	$stichtag = array($birthArray[0], $birthArray[1], $nowArray[2]);
	$tagDifferenz = date("z", gmmktime(12, 0, 0, $nowArray[1],
$nowArray[0], $stichtag[2])) - date("z", gmmktime(12, 0, 0, $birthArray[1],
$birthArray[0], $stichtag[2]));
	if( ( gmmktime(12, 0, 0, $nowArray[1], $nowArray[0], $nowArray[2] )
- gmmktime(12, 0, 0, $stichtag[1], $stichtag[0], $stichtag[2] ) ) < 0 ) {
		$stichtag = array($birthArray[0], $birthArray[1],
($nowArray[2]-1));
		$tagDifferenz = date("z", gmmktime(12, 0, 0, $nowArray[1],
$nowArray[0], $stichtag[2])) - date("z", gmmktime(12, 0, 0, $birthArray[1],
$birthArray[0], $stichtag[2]));
	}
	if( $tagDifferenz < 0 ) {
		$tagDifferenz = 365 + $tagDifferenz;
	}
	switch( date( "L", gmmktime(12, 0, 0, $stichtag[1], $stichtag[0],
$stichtag[2] ) ) ) {
		case 1:	$tageProJahr = 366;
				break;
		case 0:	$tageProJahr = 365;
				break;
	}
	return ( date("Y", gmmktime(12, 0, 0, $stichtag[1], $stichtag[0],
$stichtag[2] ) ) - date("Y", gmmktime(12, 0, 0, $birthArray[1],
$birthArray[0], $birthArray[2] ) ) ) + ( $tagDifferenz / $tageProJahr );
}

Berechnet das Alter mit diversen Nachkommastellen, fuer den Fall, dass man
es ganz genau wissen will. Sogar mit Schaltjahrsupport, LOL ;))

Aufruf der Funktion:
getAge("10.07.1977")

Mit freundlichen Gruessen,
-- 
Mathias Meyer
mediaworx berlin AG

Fon (030) 2 75 80 - 24 8
Fax (030) 2 75 80 - 20 0


php::bar PHP Wiki   -   Listenarchive