1
votes

Comment calculer l'âge en fonction de la date de naissance

Comment puis-je afficher les années et le mois?

J'ai besoin de calculer l'âge en fonction de la date de naissance sélectionnée dans le sélecteur de date.

Mais lors de la sélection d'une date, un âge incorrect s'affiche.

J'ai utilisé jquery pour calculer l'âge. Parfois, l'âge n'est pas correct.

Je dois montrer l'âge de x ans et x mois.

Lorsque je sélectionne une date comme le 22-07-2012, affichez 6 ans.

Le résultat réel est "7 ans"

 dob = new Date($("#DateOfBirth").val())
 var today = new Date();
 var age = Math.floor((today - dob) / (365.25 * 24 * 60 * 60 * 1000));
 $('#txtAge').val(age + ' years old');


3 commentaires

Copie possible de Calculer l'âge en fonction de la date de naissance au format AAAAMMJJ


Suppression de la balise non pertinente C # , assurez-vous que le balisage est correctement utilisé


Cela n'a rien à voir avec jQuery. C'est du javascript simple.


3 Réponses :


0
votes
dob = new Date($("#DateOfBirth").val())

var dobYear = dob.getFullYear();
var now = new Date(Date.now()).getFullYear();
var age = now - dobYear;

0 commentaires

0
votes

Le problème ci-dessus peut être résolu en utilisant le code ci-dessous:

Commencez par stocker la date dans une variable et séparez le jour, l'année et le mois:

var year_age = Math.floor(differenceInMilisecond / 31536000000);
var day_age = Math.floor((differenceInMilisecond % 31536000000) / 86400000);

var month_age = Math.floor(day_age/30);
day_age = day_age % 30;
if (isNaN(year_age) || isNaN(month_age) || isNaN(day_age)) {
        $("#exact_age").text("Invalid birthday - Please try again!");
    }
    else {
        $("#exact_age").html("You are<br/><span id=\"age\">" + year_age + " years " + 
    month_age + " months " + day_age + " days</span> old");
    }

puis obtenir la date du jour et la date de naissance:

var today = new Date();
var birthday = new Date(yearThen, monthThen-1, dayThen);

Après cela, il ne reste plus que les calculs:

var mydate = $("#birth_date").val().toString();
var yearThen = parseInt(mydate.substring(0,4), 10);
var monthThen = parseInt(mydate.substring(5,7), 10);
var dayThen = parseInt(mydate.substring(8,10), 10);


0 commentaires

0
votes

L'objet de date JavaScript n'a pas ce format JJ-MM-AAAA , utilisez ce format AAAA-MM-JJ , Vérifiez ci-dessous le code qui donne votre sortie attendue.

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>

  <input value="2012-07-22" id="DateOfBirth" type='text' />
  <button onclick="myFunction()">Get Age</button>
  <br/>
  <label id="txtAge"></label>
</div>
function myFunction() {
  var input = $("#DateOfBirth").val();
  var dob = new Date(input);
  var today = new Date();
  var age = Math.floor((today - dob) / (365.25 * 24 * 60 * 60 * 1000));
  $("#txtAge").html(age + ' years old');

}

J'espère que cela résoudra votre problème.


0 commentaires