How do I know if the person is of legal age? [duplicate]

-2

I need help creating a Javascript code or using jQuery, which should read the value of the person's date of birth (I'm using the datepicker) and calculate how old it is. I have to show in div talking if it is bigger or not, I have following code:

$("#entraridade").click(function () {
    var idade = 2016 - $("#date").val();
    $("#mostrar").text("Ola " + $("#name").val());
    $("#mostrar2").text("sua idade e :" + $("#idade").val());
});
$("#datepicker").datepicker({
    showOtherMonths: true,
    selectOtherMonths: true,
    dateFormat: 'dd-mm-yy',
    dayNames: ['Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado'],
    dayNamesMin: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S', 'D'],
    dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb', 'Dom'],
    monthNames: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
    monthNamesShort: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],
    nextText: 'Proximo',
    prevText: 'Anterior'
});
<body>
  <form id="form">
    Nome:
    <input type="text" id="name"><br>
    Data de nascimento:         
    <input type="text" id="datepicker" name="data"/><br>
    <input type="button" id="entraridade" value="Ok">            
  </form>
  <div id="resultado"></div>
  <div id="resultado2"></div>
</body>
    
asked by anonymous 28.06.2016 / 13:48

1 answer

4

I used a function that returns the difference between the current year minus the proposed year, which will return to age .

See working:

function getIdade(data) {
   var hoje = new Date();
  
    var nascimento = new Date(convertDateMMDDYYY(data.split("/")));

    //Retorna a diferença entre hoje e a data de nascimento em anos.
    var ano = hoje.getFullYear() - nascimento.getFullYear();
 
    //Retorna a diferença de mês do mês de nascimento para o atual.
    var m = hoje.getMonth() - nascimento.getMonth();

    //Caso ainda não tenha ultrapassado o dia e o mês
    if (m < 0 || (m === 0 && hoje.getDate() < nascimento.getDate())) {
        ano--;
    }
    return ano;
}

function convertDateMMDDYYY(datearray) {
  return datearray[1] + '-' + datearray[0] + '-' + datearray[2];
}

function Is18() 
{
  var data = document.getElementById("datepicker");
   
  if(getIdade(data.value) >= 18)
       document.getElementById("resultado").innerHTML= "Você tem 18 ou mais anos de idade!";
  else
     document.getElementById("resultado").innerHTML="Você não tem 18 anos!";
}

$('#datepicker').datepicker();

   $.datepicker.regional['pt-BR'] = {
                closeText: 'Fechar',
                prevText: '&#x3c;Anterior',
                nextText: 'Pr&oacute;ximo&#x3e;',
                currentText: 'Hoje',
                monthNames: ['Janeiro','Fevereiro','Mar&ccedil;o','Abril','Maio','Junho',
                'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
                monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
                'Jul','Ago','Set','Out','Nov','Dez'],
                dayNames: ['Domingo','Segunda-feira','Ter&ccedil;a-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sabado'],
                dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'],
                dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'],
                weekHeader: 'Sm',
                dateFormat: 'dd/mm/yy',
                firstDay: 0,
                isRTL: false,
                showMonthAfterYear: false,
                yearSuffix: ''};
        $.datepicker.setDefaults($.datepicker.regional['pt-BR']);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><scriptsrc="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
 <link rel="stylesheet" href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">

Nome:
    <input type="text" id="name"><br>
    
<p>Data de nascimento: <input type="text" id="datepicker"></p>
    <input type="button" id="entraridade" onclick='Is18()' value="Ok">
    <div id="resultado"></div>
    
28.06.2016 / 14:40