Reputation: 13315
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
Upvotes: 5
Views: 807
Reputation: 11
I use a simple php script that I have made by myself: My_Age_Php
Upvotes: 1
Reputation: 18798
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;
Upvotes: 0
Reputation: 5266
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.
Upvotes: 1
Reputation: 54729
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.
Upvotes: 7
Reputation:
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);
?>
Upvotes: 1
Reputation: 51640
PHP 5.3.0 also introduced a date_diff
function as a part of the DateTime class.
Upvotes: 0