PHP function that returns the exact age

Here is a simple PHP function that returns the exact age of a person given his/her birthdate: function age($month, $day, $year){ $y = gmstrftime("%Y"); $m = gmstrftime("%m"); $d = gmstrftime("%d"); $age = $y - $year; if($m <= $month) { if($m == $month) { if($d < $day) $age = $age - 1; } else $age = […]

From our monthly sponsor: Create your beautiful portfolio website with Squarespace. Start your free trial.Advertisement

Here is a simple PHP function that returns the exact age of a person given his/her birthdate:

function age($month, $day, $year){
 $y = gmstrftime("%Y");
 $m = gmstrftime("%m");
 $d = gmstrftime("%d");
 $age = $y - $year;
 if($m <= $month)
 {
 if($m == $month)
 {
 if($d < $day) $age = $age - 1;
 }
 else $age = $age - 1;
 }
 return($age);
}

The function is used with a call like this:

age(2,1,1979);

The example call would return 30 (at this moment). You can use this to display the age of your users if you have their birthdate.

Enjoy!

Tagged with:

ML is a freelance web designer and developer with a passion for interaction design. She studied Cognitive Science and Computational Logic and has a weakness for the smell of freshly ground peppercorns.

http://www.codrops.com

Receive our bi-weekly Collective or official newsletter right in your inbox.

CSS Reference

Learn about all important CSS properties from the basics with our extensive and easy-to-read CSS Reference.

It doesn't matter if you are a beginner or intermediate, start learning CSS now.

Feedback 3

Comments are closed.
  1. Pingback: PHP function that returns the exact age

  2. $intCurrentDateStamp = time();
    $intBirthStamp = mktime( 0, 0, 0, 12, 24, 1986 );
    $intAge = $intCurrentDateStamp – $intBirthStamp;
    echo round( ( ( ( ( $intAge / 60 ) / 60 ) / 24 ) / 365 ) );

  3. The code from Mary is a bit complicated and is wrong (if the locale is not GMT it might produce false result).

    The code from Adam is wrong as well as it doesn’t take leap years into account.

    function age($year, $month, $day) {
    $y = date(‘Y’);
    $m = date(‘m’);
    $d = date(‘d’);

    $age = $y – $year;

    if( ($m < $month) || ($m == $month && $d < $day) )
    {
    $age–;
    }

    return $age;
    }