Programación en PHP/Ejemplos/Calcular edad

De Wikilibros, la colección de libros de texto de contenido libre.

Calcular edad con PHP Con Funciones[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 PHP[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");