Hi
How can i calculate year from entering my age using php.
example:
i am entering my age as 24.
So that i need to get the year as 1985.
how this can be done.
thanks in advance
Hi
How can i calculate year from entering my age using php.
example:
i am entering my age as 24.
So that i need to get the year as 1985.
how this can be done.
thanks in advance
If you knew simple math, you'd know that 2010 - 24 - 1 = 1985
or $year = date("Y") - $theirage - 1
... But just giving an age does not accurately deduce what year they were born. For example:
If the date is December 30, 2010 and they say they're 24, you're still saying they were born in 1985 when chances are very, very high that they were actually born in 1986. You cannot rely on their age to give you their birth year.
EDIT If that wasn't very clear:
Today's date is June 16, 2010. So to be 24 years old, I would have needed to be born somewhere between June 17, 1985 and June 16, 1986. That's near half of the birthyears that would be 1985 and near half that would be 1986, causing a very high inaccuracy.
PHP 5.3.0 also introduced a date_diff
function as a part of the DateTime class.
With DateTime
:
PHP > 5.2
<?php
function getBirthYear($age) {
$now = new DateTime();
$now->modify("-" . $age . " years");
return $now->format("Y");
}
echo getBirthYear(24);
?>
PHP > 5.3
<?php
function getBirthYear($age) {
$now = new DateTime();
$now->sub(new DateInterval("P" . $age . "Y"));
return $now->format("Y");
}
echo getBirthYear(24);
?>
Since you cannot give an exact year, it is better to specify a date range.
If you are 24 years old today (we usually round down, not round off), you were born between 17 Jun 1985 and 16 Jun 1986.
Methods of adding and subtracting dates have already been posted on this page.
WARNING: This is inacurate but its a try.
$yearBorn = round((((time()-($age*31556926))/31556926)+70));
$yearBorn = ($yearBorn>100)? "20".substr($yearBorn,1,2):"19".$yearBorn;