Simple PHP Script That Accurately Determines User’s Age (in Years) Simple Age PHP Script (with 3 variations)

For fun, I decided to write a simple PHP script that would give you your age accurately (in years) regardless of what point in the current year you’re at. You provide the digits of your birthday (month, day, and year) and it processes a few arguments (whether the birth year provided is valid and whether you’ve had your birthday this year yet) and provides you the correct age in years. This is it in action (using my birth date):

User is 42 years old!

So, yeah… it’s a real basic script. However, where it really ends up being useful is when you manually include your age (in years) on your website. Once your next birthday occurs, the age you manually typed in is no longer valid which means you need to manually update it each year. Why not have a script dynamically update it for you? You need only include the file within your php page like so (with the correct link to the age file):

include ("linktoyouragefile.php");

If you’d like to look at the code itself, the code in its entirety follows below:

// Your Age
// Coded by K. Enders

// User variables -- only change values in this section!

// Provide the digit values for your birthday below

$bdaymonth = "8";
$bdayday = "27";
$bdayyear = "1982";

// Now let the script do all the work!

// grabbing the current date info

$currentmonth = date("n"); 
$currentday = date("j"); 
$currentyear = date("Y"); 
    
       // first, make sure that the year provided is not the current one or one from the future

       if($bdayyear >= $currentyear) {
       
       echo "Please enter a valid year!";

       } else {

               
               // now check to see if the current month is before or after the user's birth month

               if($currentmonth > $bdaymonth) {

               // if the current month is higher than the birth month, it means the user has already had their birthday this year... go ahead and do the math

               $user_age = $currentyear - $bdayyear;
               echo "User is $user_age years old!";


               } elseif($currentmonth == $bdaymonth) {

               // it is the user's birth month -- we need to figure out if they've already reached their birth 'day' this year or not

                     // figure this out by comparing current day to birth day

                           if($currentday > $bdayday) {

                           // user's bday has occurred, do the math

                           $user_age = $currentyear - $bdayyear;
                           echo "User is $user_age years old!";


                           } elseif ($currentday == $bdayday) {

                           // user's bday is today, do the math
                           $user_age = $currentyear - $bdayyear;
                           echo "User is $user_age years old!";


                           } elseif ($currentday < $bdayday) {

                           // user's birthday hasn't occured, do the adjusted math

                           $user_age = $currentyear - $bdayyear;
                           $adjusted_user_age = $user_age - 1;
                           echo "User is $adjusted_user_age years old!";


                           }  // end day check


               } elseif($currentmonth < $bdaymonth) {

               // user hasn't reached their birthday this year so you can do the math and minus 1 to keep their actual age correct
               $user_age = $currentyear - $bdayyear;
               $adjusted_user_age = $user_age - 1;
               echo "User is $adjusted_user_age years old!";
             

               } // end month check

        } // end for year check

Using it for the aforementioned purpose, I would, of course, change ‘User is x years old’ to something like ‘x years old’ and integrate that into your site.

Not Quite Done

It was fun writing the first version, but I wanted a more front-end user friendly version as well. So, I decided I wanted to add a front end that allows the user to put in their birth date and receive their age in years. It was a lot easier than I expected. 🙂 I’m including a screenshot of it in action below:

A simple age input PHP script
Not dressed up in CSS (yet!) but it works great!


I added a third variation of the script that uses javascript alert boxes to deliver the age. The results look like this:

A variation in case you like the results delivered via javascript alert popups.

If you would like to download the script (containing all 3 variations of the script), click the Download button below:

.

If you found this post useful, leave a comment below!

2 comments

Leave a Reply

Your email address will not be published. Required fields are marked *