Javascript verifier une date
Résolu/Fermé
Kratos60
Messages postés
56
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
2 mars 2012
-
Modifié par Kratos60 le 27/12/2010 à 11:03
jonastuces Messages postés 45 Date d'inscription vendredi 18 mai 2007 Statut Membre Dernière intervention 30 décembre 2010 - 30 déc. 2010 à 18:35
jonastuces Messages postés 45 Date d'inscription vendredi 18 mai 2007 Statut Membre Dernière intervention 30 décembre 2010 - 30 déc. 2010 à 18:35
A voir également:
- Javascript verifier une date
- Verifier un lien - Guide
- Telecharger javascript - Télécharger - Langages
- Verifier compatibilite windows 11 - Guide
- Mfg date - Forum PC portable
5 réponses
jonastuces
Messages postés
45
Date d'inscription
vendredi 18 mai 2007
Statut
Membre
Dernière intervention
30 décembre 2010
24
24 déc. 2010 à 00:20
24 déc. 2010 à 00:20
Bonsoir Kratos60,
En fait si j'ai bien compris tu passe d'une page à l'autre l'année de naissance ainsi que l'année de comparaison.
Il suffit de récupérer tes variables en POST ou GET selon la façon dont tu procède
$AnneeNaissance = $_POST['NomDeTaVariableAnneeNaissance'];
$AnneeControle = $_POST['NomVariableControl'];
ou
$AnneeNaissance = $_GET['NomDeTaVariableAnneeNaissance'];
$AnneeControle = $_GET['NomVariableControl'];
Pour ta condition de contrôle tu peux faire quelque chose comme
if($AnneeControle > $AnneeNaissance){ // Si l'année de contrôle est supérieur à
Ici ton calcul l'année de naissance
}
Puis tu fait le calcul $Age = $AnneeControle - $AnneeNaissance;
Ensuite il te reste plus qu'à afficher le résultat dans ton tableau par un
echo $Age;
Si tu veux calculer l'age par rapport à l'année en cours, il suffit de faire :
$AnneeControle = date("Y");
En espérant t'avoir aidé.
Tiens-moi au courant.
Bonne soirée et bonnes fêtes de fin d'année.
En fait si j'ai bien compris tu passe d'une page à l'autre l'année de naissance ainsi que l'année de comparaison.
Il suffit de récupérer tes variables en POST ou GET selon la façon dont tu procède
$AnneeNaissance = $_POST['NomDeTaVariableAnneeNaissance'];
$AnneeControle = $_POST['NomVariableControl'];
ou
$AnneeNaissance = $_GET['NomDeTaVariableAnneeNaissance'];
$AnneeControle = $_GET['NomVariableControl'];
Pour ta condition de contrôle tu peux faire quelque chose comme
if($AnneeControle > $AnneeNaissance){ // Si l'année de contrôle est supérieur à
Ici ton calcul l'année de naissance
}
Puis tu fait le calcul $Age = $AnneeControle - $AnneeNaissance;
Ensuite il te reste plus qu'à afficher le résultat dans ton tableau par un
echo $Age;
Si tu veux calculer l'age par rapport à l'année en cours, il suffit de faire :
$AnneeControle = date("Y");
En espérant t'avoir aidé.
Tiens-moi au courant.
Bonne soirée et bonnes fêtes de fin d'année.
Kratos60
Messages postés
56
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
2 mars 2012
Modifié par Kratos60 le 27/12/2010 à 11:04
Modifié par Kratos60 le 27/12/2010 à 11:04
Bonjour jonastuces,
Desolé de ne repondre que maintenant mais avec les fetes j'ai été un peu occupé ^^.
Bref enfaite, je saisie la date de controle dans la premiere page mais la date de naissance est saisie dans la deuxieme.
Et j'aimerai qu'une fois que j'ai saisie la date de naissance l'age apparaisse automatiquement. Donc pour faire cela je pense qu'il faut utiliser du javascript mais voila je ne vois pas comment faire...
Desolé de ne repondre que maintenant mais avec les fetes j'ai été un peu occupé ^^.
Bref enfaite, je saisie la date de controle dans la premiere page mais la date de naissance est saisie dans la deuxieme.
Et j'aimerai qu'une fois que j'ai saisie la date de naissance l'age apparaisse automatiquement. Donc pour faire cela je pense qu'il faut utiliser du javascript mais voila je ne vois pas comment faire...
Kratos60
Messages postés
56
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
2 mars 2012
27 déc. 2010 à 11:10
27 déc. 2010 à 11:10
Bon voila, j'ai un peu avancé.
Deja j'ai la fonction javascript qui verifie la date de naissance et dedans je voudrais rajouter une opération. j'aurai aimé savoir si cela est possible.
L'opération que j'aimerai faire c'est celle plus haut c'est a dire faire année de con trole - annee de naissance. J'ai essayé de mon cote mais ça marche pas si quelque voit pourquoi merci d'avance :).
<script>
function verifDate(element)
{
var tmp = document.forms["result_rpfa"].elements[element].value;
var regsymbol = new RegExp("[ /-]","g"); //verif de la présence d'espace (01 12 2004), de / (01/12/2004) ou de - (01-12-2004)
var regnum = new RegExp("[0-9]{6,8}","g"); //type 011204 ou 01122004
var jour = 0;
var mois = 0;
var annee = 0;
var res = false;
var ladate = new Date();
var annee_courante = ladate.getFullYear().toString();
var age_enfant;
if (tmp != "")
{
var taille = tmp.length;
var bool_num = regnum.test(tmp);
var bool_symbol = regsymbol.test(tmp);
if (bool_num)
{
switch(taille)
{
case 6: // cas 011204
jour = tmp.substr(0,2);
mois = tmp.substr(2,2);
annee = annee_courante.substr(0,2) + tmp.substr(4,2);
break;
case 8: // cas 01122004
jour = tmp.substr(0,2);
mois = tmp.substr(2,2);
annee = tmp.substr(4,4);
}
}
else
{
if (bool_symbol)
{
switch(taille)
{
case 8: // cas 01/12/04
jour = tmp.substr(0,2);
mois = tmp.substr(3,2);
annee = annee_courante.substr(0,2) + tmp.substr(6,2);
break;
case 10: // cas 01/12/2004
jour = tmp.substr(0,2);
mois = tmp.substr(3,2);
annee = tmp.substr(6,4);
}
}
}
if ((jour != 0) && (mois != 0) && (annee != 0))
{
if ((mois == 1) || (mois == 3) || (mois == 5) || (mois == 7) || (mois == 8) || (mois == 10) || (mois == 12)) // mois � 31 jours
{
if (jour < 32)
{
res = true;
}
}
if ((mois == 4) || (mois == 6) || (mois == 9) || (mois == 11)) // mois � 30 jours
{
if (jour < 31)
{
res = true;
}
}
if (mois == 2) // 28 ou 29 jours selon ann�e bisextille
{
if ((annee % 4) == 0)
{
if (jour < 30)
{
res = true;
}
}
else
{
if (jour < 29)
{
res = true;
}
}
}
}
if (res == true)
{
document.forms["result_rpfa"].elements[element].value = jour + "/" + mois + "/" + annee;
if (mois < 7) // date de naissance au 31/12 le plus proche est le 31/12 de l'ann�e pr�c�dente.
{
age_enfant = parseInt($datesinis.toString().substr(6,4)) - parseInt(annee) + 1;
}
else // date de naissance au 31/12 le plus proche est le 31/12 de l'ann�e en cours.
{
age_enfant = parseInt($datesinis.substr(6,4)) - parseInt(annee);
}
//prendre indice ("date" + i) afin de remplir la case age correspondante ("age" + i)
if (age_enfant < 0)
{
document.forms["result_rpfa"].elements["age" + element.substr(4,element.length - 4)].value = 0;
}
else
{
document.forms["result_rpfa"].elements["age" + element.substr(4,element.length - 4)].value = age_enfant;
}
}
else
{
alert("La date de naissance entrée n'est pas valide(elle doit etre de la forme jj/mm/aaaa)");
document.forms["result_rpfa"].elements[element].focus();
}
}
//return res;
}
</script>
et je met le script sur cette input.
<input type='text' name='date".$nbexit."' size='12' maxlength='10' onblur=\" javascript:verifDate('date".$nbexit."');\">
</div>
Deja j'ai la fonction javascript qui verifie la date de naissance et dedans je voudrais rajouter une opération. j'aurai aimé savoir si cela est possible.
L'opération que j'aimerai faire c'est celle plus haut c'est a dire faire année de con trole - annee de naissance. J'ai essayé de mon cote mais ça marche pas si quelque voit pourquoi merci d'avance :).
<script>
function verifDate(element)
{
var tmp = document.forms["result_rpfa"].elements[element].value;
var regsymbol = new RegExp("[ /-]","g"); //verif de la présence d'espace (01 12 2004), de / (01/12/2004) ou de - (01-12-2004)
var regnum = new RegExp("[0-9]{6,8}","g"); //type 011204 ou 01122004
var jour = 0;
var mois = 0;
var annee = 0;
var res = false;
var ladate = new Date();
var annee_courante = ladate.getFullYear().toString();
var age_enfant;
if (tmp != "")
{
var taille = tmp.length;
var bool_num = regnum.test(tmp);
var bool_symbol = regsymbol.test(tmp);
if (bool_num)
{
switch(taille)
{
case 6: // cas 011204
jour = tmp.substr(0,2);
mois = tmp.substr(2,2);
annee = annee_courante.substr(0,2) + tmp.substr(4,2);
break;
case 8: // cas 01122004
jour = tmp.substr(0,2);
mois = tmp.substr(2,2);
annee = tmp.substr(4,4);
}
}
else
{
if (bool_symbol)
{
switch(taille)
{
case 8: // cas 01/12/04
jour = tmp.substr(0,2);
mois = tmp.substr(3,2);
annee = annee_courante.substr(0,2) + tmp.substr(6,2);
break;
case 10: // cas 01/12/2004
jour = tmp.substr(0,2);
mois = tmp.substr(3,2);
annee = tmp.substr(6,4);
}
}
}
if ((jour != 0) && (mois != 0) && (annee != 0))
{
if ((mois == 1) || (mois == 3) || (mois == 5) || (mois == 7) || (mois == 8) || (mois == 10) || (mois == 12)) // mois � 31 jours
{
if (jour < 32)
{
res = true;
}
}
if ((mois == 4) || (mois == 6) || (mois == 9) || (mois == 11)) // mois � 30 jours
{
if (jour < 31)
{
res = true;
}
}
if (mois == 2) // 28 ou 29 jours selon ann�e bisextille
{
if ((annee % 4) == 0)
{
if (jour < 30)
{
res = true;
}
}
else
{
if (jour < 29)
{
res = true;
}
}
}
}
if (res == true)
{
document.forms["result_rpfa"].elements[element].value = jour + "/" + mois + "/" + annee;
if (mois < 7) // date de naissance au 31/12 le plus proche est le 31/12 de l'ann�e pr�c�dente.
{
age_enfant = parseInt($datesinis.toString().substr(6,4)) - parseInt(annee) + 1;
}
else // date de naissance au 31/12 le plus proche est le 31/12 de l'ann�e en cours.
{
age_enfant = parseInt($datesinis.substr(6,4)) - parseInt(annee);
}
//prendre indice ("date" + i) afin de remplir la case age correspondante ("age" + i)
if (age_enfant < 0)
{
document.forms["result_rpfa"].elements["age" + element.substr(4,element.length - 4)].value = 0;
}
else
{
document.forms["result_rpfa"].elements["age" + element.substr(4,element.length - 4)].value = age_enfant;
}
}
else
{
alert("La date de naissance entrée n'est pas valide(elle doit etre de la forme jj/mm/aaaa)");
document.forms["result_rpfa"].elements[element].focus();
}
}
//return res;
}
</script>
et je met le script sur cette input.
<input type='text' name='date".$nbexit."' size='12' maxlength='10' onblur=\" javascript:verifDate('date".$nbexit."');\">
</div>
Kratos60
Messages postés
56
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
2 mars 2012
27 déc. 2010 à 16:29
27 déc. 2010 à 16:29
Bon j'ai trouvé comme un grand :)
Merci quand meme jonastuces :)
Merci quand meme jonastuces :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jonastuces
Messages postés
45
Date d'inscription
vendredi 18 mai 2007
Statut
Membre
Dernière intervention
30 décembre 2010
24
30 déc. 2010 à 18:35
30 déc. 2010 à 18:35
Bonjour Kratos60,
Désolé je n'ai pas pu me connecter avant.
Pas de soucis, n'hésite pas quand tu as besoin.
Bonne journée et bonnes fêtes de fin d'année.
Désolé je n'ai pas pu me connecter avant.
Pas de soucis, n'hésite pas quand tu as besoin.
Bonne journée et bonnes fêtes de fin d'année.