Programación en PHP/Ejemplos/Calcular edad

De Wikilibros, la colección de libros de texto de contenido libre.
Saltar a: navegación, buscar

Calcular edad con PHP[editar]

Introducción[editar]

Un cálculo muy solicitado en muchas ocasiones es el de calcular la edad. Es un calculo sencillo una vez tienes en cuenta algunos factores imprescindibles.

Si has nacido en 1980 y estamos en el 2000 tendrías 20 años siempre que hayas sobrepasado el día y el mes de tu nacimiento. Sabiendo esto generaremos dos if que restaran un año en el caso de no cumplir con la condición.

Código[editar]

<?php
//fecha actual
 
$dia=date(j);
$mes=date(n);
$ano=date(Y);
 
//fecha de nacimiento
 
$dianaz=2;
$mesnaz=6;
$anonaz=1983;
 
//si el mes es el mismo pero el día inferior aun no ha cumplido años, le quitaremos un año al actual
 
if (($mesnaz == $mes) && ($dianaz > $dia)) {
$ano=($ano-1); }
 
//si el mes es superior al actual tampoco habrá cumplido años, por eso le quitamos un año al actual
 
if ($mesnaz > $mes) {
$ano=($ano-1);}
 
//ya no habría mas condiciones, ahora simplemente restamos los años y mostramos el resultado como su edad
 
$edad=($ano-$anonaz);
 
print $edad;
 
?>

Como veis es un código muy simple donde tendréis que sustituir las variables "$dianaz=2" "$mesnaz=6" y "$anonaz=1983" por la fecha de nacimiento a calcular para que os sea completamente útil.

Una manera más elegante y compacta de hacerlo puede ser:

function CalculaEdad( $fecha ) {
    list($Y,$m,$d) = explode("-",$fecha);
    return( date("md") < $m.$d ? date("Y")-$Y-1 : date("Y")-$Y );
}

Llamando a la función CalculaEdad() con la fecha en formato YYYY-mm-dd como parámetro, nos devuelve la edad de una persona nacida en esa fecha. Ej: CalculaEdad("1945-11-22");