Maison > Questions et réponses > le corps du texte
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/
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.