Obtener edad desde una fecha en Javascript

Hace un tiempo habíamos visto cómo obtener una edad desde una fecha de nacimiento en PostgreSQL, en MySQL y en MS SQL-Server. ¿Y en javascript? Vamos a ver tres funciones:

En la primera función el parámetro que recibiremos será una cadena con una fecha en formato YYYYMMDD (por ejemplo 20180211 para hoy):

function terIdade(cadeaData) {
    var hoxe = new Date();
    var nacemento = new Date(cadeaData);
    var idade = hoxe.getFullYear() - nacemento.getFullYear();
    var m = hoxe.getMonth() - nacemento.getMonth();
    if (m < 0 || (m === 0 && hoxe.getDate() < nacemento.getDate())) {
        idade--;
    }
    return idade;
}

Otra opción, pasando el mismo parámetro, es conseguir el resultado el milisengundos y operar con él para obtener la edad. Para eso dividiremos la diferencia entre fechas entre 1000*60*60*24*365.25:

function terIdade(cadeaData) {
    var nacemento = new Date(cadeaData);
    var data = new Date();
    var dif = data-birthdate;
    var idade = Math.floor(dif/31536000000);
    return idade;
}

La tercera opción sería no mandar a la función una cadena con la fecha, sino separados el año, el mes y el día (pasándoselos como enteros, no como cadenas). Y para el resto haríamos más o menos la misma operación que en el ejemplo.

function terIdade(ano,mes,dia) {
    var hoxe = new Date();   
    var idade = hoxe.getFullYear() - ano;
    var m = hoxe.getMonth() - mes;
    if (m < 0 || (m === 0 && hoxe.getDate() < dia)) {
        idade--;
    }
    return idade;
}

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.