I have birth dates on my site in format 12.01.1980
.
$person_date (string) = Day.Month.Year
Want to add an oldness of the person. Like "Currently 30 years" (2010 - 1980 = 30 years).
But makin the function just on years can't give the perfect result:
If person birth date is 12.12.1980
and current date is 01.01.2010
the person doesn't have 30 years old. It's a 29 years and one month.
There must be a calculation on targeting both year, month and day of birth with comparison of current date:
0) Parse the dates.
Birth date (Day.Month.Year):
Day = $birth_day;
Month = $birth_month;
Year = $birth_year;
Current date (Day.Month.Year):
Day = $current_day;
Month = $current_month;
Year = $current_year;
1) year comparison, 2010 - 1980 = write "30" (let it be $total_year
variable)
2) compare the months, if (birth date month is bigger > than current month (like 12 in birth and 01 current)) { do minus one year from $total_year
variable (30 - 1 = 29) }. If do minus happened, finish the calculations at this point. Else go the next (3 step).
3) else if (birth month < current month) { $total_year = $total_year (30); }
4) else if (birth month = current month) { $total_year = $total_year (30); }
and check the day (in this step):
if(birth day = current day) { $total_year = $total_year; }
else if (birth day > current day) { $total_year = $total_year -1; }
else if (birth day < current day) { $total_year = $total_year; }
5) echo $total_year;
My php knowledge isn't good, hope you can help.
Thanks.