recherche

Maison  >  Questions et réponses  >  le corps du texte

Le titre réécrit est : Calculer l'âge en fonction de la date de naissance au format AAAAMMJJ

<p>Comment calculer l'âge en fonction de la date de naissance au format AAAAMMJJ ? Est-il possible d'utiliser la fonction <code>Date()</code> </p> <p>Je recherche une meilleure solution que celle que j'utilise actuellement : </p> <p><br /></p> <pre class="brush:js;toolbar:false;">var dob = '19800810'; var année = Nombre(dob.substr(0, 4)); var mois = Nombre(dob.substr(4, 2)) - 1; var jour = Nombre(dob.substr(6, 2)); var aujourd'hui = new Date(); var âge = aujourd'hui.getFullYear() - année ; if (today.getMonth() < mois || (today.getMonth() == mois && aujourd'hui.getDate() < jour)) { âge--; } alerte(âge);</pre> <p><br /></p>
P粉265724930P粉265724930497 Il y a quelques jours419

répondre à tous(2)je répondrai

  • P粉574268989

    P粉5742689892023-08-21 15:03:33

    Essayez-le.

    function getAge(dateString) {
        var today = new Date();
        var birthDate = new Date(dateString);
        var age = today.getFullYear() - birthDate.getFullYear();
        var m = today.getMonth() - birthDate.getMonth();
        if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
            age--;
        }
        return age;
    }

    Je crois que la seule partie de votre code qui semble approximative est la partie substr.

    Fiddle : http://jsfiddle.net/codeandcloud/n33RJ/

    répondre
    0
  • P粉478188786

    P粉4781887862023-08-21 11:57:16

    Je choisirais la lisibilité :

    function _calculateAge(birthday) { // birthday is a date
        var ageDifMs = Date.now() - birthday.getTime();
        var ageDate = new Date(ageDifMs); // miliseconds from epoch
        return Math.abs(ageDate.getUTCFullYear() - 1970);
    }

    Avertissement : Cette méthode présente également des problèmes de précision, elle ne peut donc pas être entièrement fiable. Des erreurs peuvent survenir certaines années, certaines heures ou l'heure d'été (en fonction du fuseau horaire).

    Si la précision est très importante, je recommande d'utiliser une bibliothèque pour gérer cela. De plus, @Naveens post est probablement le plus précis puisqu'il ne dépend pas du temps.


    répondre
    0
  • Annulerrépondre