Mailinglisten-Archive |
> -----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