Check my math please, Verifying a user is 18
Posted: Thu Dec 09, 2004 8:48 pm
I am tired but I think this is right. I just needed a function to make sure a user was >= 18 years old. Let me know what you think.
Ya'all are free to use this in your own scripts if you want.
Code: Select all
<?php
function ParseTimeStamp($TimeStamp)
{
$Year = substr($TimeStamp, 0, 4);
$Month = substr($TimeStamp, 4, 2);
$Day = substr($TimeStamp, 6, 2);
$Hour = substr($TimeStamp, 8, 2);
if ($Hour >= 12) $Meridiem = 'PM'; else $Meridiem = 'AM';
if ($Hour > 12) $Hour = $Hour - 12;
$Minute = substr($TimeStamp, 10, 2);
$Second = substr($TimeStamp, 12, 2);
$TimeStamp = array(); // Clear the variable to a null state
$TimeStamp['Year'] = $Year;
$TimeStamp['Month'] = $Month;
$TimeStamp['Day'] = $Day;
$TimeStamp['Hour'] = $Hour;
$TimeStamp['Meridiem'] = $Meridiem;
$TimeStamp['Minute'] = $Minute;
$TimeStamp['Second'] = $Second;
$TimeStamp['YYYYMMDD'] = $Year . $Month . $Day;
return $TimeStamp;
}
function IsOldEnough($TimeStamp, $DOB, $MOB, $YOB) //current timestamp, day of birth, month of birth, year of birth
{
$TimeStamp = ParseTimeStamp($TimeStamp);
if (($TimeStamp['Year'] - $YOB) > 17){return true;} // if current year - year of birth > 18 return true
if ((($TimeStamp['Year'] - $YOB) == 17) and ($MOB > $TimeStamp['Month'])){return true;} // if was born after this month 17 years ago
if ((($TimeStamp['Year'] - $YOB) == 17) and ($MOB = $TimeStamp['Month']) and ($DOB >= $TimeStamp['Day'])){return true;} // if was born this month and on or after this day 17 years ago
return false;
}
?>