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