Tengo fechas de nacimiento en mi sitio en el formato 12.01.1980
.PHP calcular la edad actual de la persona
$person_date (string) = Day.Month.Year
Quieres añadir una antigüedad de la persona. Me gusta "Actualmente 30 años" (2010 - 1980 = 30 años).
Pero Makin la función sólo en años no pueden dar un resultado perfecto:
Si la persona es la fecha de nacimiento y la fecha actual 12.12.1980
es 01.01.2010
la persona no tiene 30 años de edad. Son 29 años y un mes.
Debe haber un cálculo en la orientación tanto año, mes y día de nacimiento con comparación de fecha actual:
0) Analizar las fechas.
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) la comparación año, 2010-1980 = escritura "30" (que sea $total_year
variables)
2) comparar los meses, si (fecha de nacimiento mes es más grande> que el mes actual (como 12 en el nacimiento y 01 actual)) {hacer menos un año desde $total_year
variable (30 - 1 = 29)}. Si ocurre lo contrario, termine los cálculos en este punto. De lo contrario, vaya al siguiente (3 pasos).
3) else if (birth month < current month) { $total_year = $total_year (30); }
4) else if (birth month = current month) { $total_year = $total_year (30); }
y comprobar el día (en este paso):
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;
Mi conocimiento de php no es bueno, espero que pueda ayudar.
Gracias.
Cuente los días entre la fecha de nacimiento y ahora, multiplique por 4, divida por 1461 (en lugar de dividir por coma flotante por 365.25)? – pascal
¿dará una respuesta correcta? – James
@pascal: ¿cómo contarías los días? – Svish