Calculer l'âge à partir de la “Date” de l'élément HTML
J'ai un formulaire HTML avec "Date" et un bouton "soumettre". Il y a 2 fonctions. L'un est pour le calcul de l'âge à partir de la date de naissance de la "date" de l'élément HTML. L'autre fonction est pour la comparaison de l'âge avec un minimum de permis âge. J'ai besoin d'aide pour le compléter. Voir à mes questions dans les commentaires du code. Oui, j'ai vu d'autres questions similaires. Je voudrais apprendre et non pas simplement copier/coller. Si j'ai bien compris quel est le problème avec mon code /syntaxe, alors je vais apprendre mieux. Merci à l'avance.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
var minAge = 18;
var curDate = new Date();
var curr_year = curDate.getFullYear();
var curr_month = curDate.getMonth();
//Calculates age from given Birth Date in the form//
function _calcAge() {
var dt1 = document.getElementById('date').value;
var birth_date = new Date(dt1);
var birth_year = birth_date.getFullYear();
var birth_month = birth_date.getMonth();
var calc_year = curr_year - birth_year;
var calc_month = curr_month - birth_month;
//The following below is what I am not sure about.
//I need to combine years and months and
//convert them into a string??? Is this syntax dead wrong?
var final_result = (calc_year && "." && calc_month).toString();
//final result should be a number with a decimal point, example: 35.5
final_result = parseFloat;
return (final_result);
alert(final_result);
}
//Compares calculated age with minimum age and acts according to rules//
function _setAge() {
var age = _calcAge();
//alert("my age is " + age);
if (age < minAge) {
alert("You are not allowed into the site. The minimum age is 18!");
} else
alert("Welcome to my Site");
window.open(main.htm, _self);
}
</script>
<form>
Date Of Birth: <input type="date" name="date of birth" id="date" />
<input type="submit" name="submit" id="submit" onClick="_setAge();" />
</form>
</body>
</html>
Vous devez vous connecter pour publier un commentaire.
Vous pouvez ajouter ou soustraire javascript dates par des fonctions mathématiques de base.
Il suffit de faire une nouvelle Date pour aujourd'hui
var Today = new Date()
et puis, il suffit de soustraire la date à partir de la forme. Vous obtenez la différence en millisecondes.Maintenant vous avez juste besoin de les convertir en années/mois en les divisant par
(1000*60*60*24*365)
Si juste de le faire:
La
toFixed(1);
renvoie votre numéro avec 1 point décimal.Et rappelez-vous toujours JavaScripts Dates de Mois sont basés sur zéro.
Votre deuxième fonction devrait fonctionner aussi.
Ici, c'est un travail de violon
Cela fonctionne, vous pouvez simplement remplacer le code avec cette
J'ai réussi à le faire fonctionner. Le mérite en revient aussi à https://stackoverflow.com/users/444991/matt pour la partie que j'ai emprunté de lui ici:
https://stackoverflow.com/a/4076440/3189118