Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

converter a data de nascimento para idade no ano atual e imprimir na tabela

Olá tudo se poderem ajudar o meu código está no meu repositório github https://github.com/GotoXY-dev/javascript-crud

1 resposta
solução!

Oi Vinicius!

Uma das formas de comparar duas datas é calcular a diferença delas em milissegundos. Então no seu caso é preciso pegar essa informação do input e da data atual.

Depois, basta fazer a subtração da data atual pela data do input (data de nascimento) e por último converter milissegundos para anos.

O seu método idade ficaria mais ou menos assim:

idade(usuario){
    var birth_date = new Date(document.getElementById("date").value);

    var today = Date.now(); // pega o dia de hoje em ms

    // calculando a diferença em milissegundos entre agora e o dia do nascimento
    const diff = Math.abs(today - birth_date.getTime());

    // 1 segundo = 1000 ms
    // 1 minuto = 60 s
    // 1 hora = 60 min
    // 1 dia = 24 h
    // 1 ano = 365 d
    // diff (ms)      1 s       1 min       1 h         1 d     1 ano
    //           * -------- * --------  * --------  *  ----- * -------
    //              1000 ms     60 s       60 min       24 h    365 d


    // calculando a diferença em anos
    const diffInYears = Math.floor(diff / (1000 * 60 * 60 * 24 * 365));

    document.getElementById("date").innerHTML = output_value;
}

O Math.floor arredonda pra baixo o valor caso ele tenha casas decimais.

Espero ter ajudado!