Javascript controle de date
marion25
-
NookZ Messages postés 2376 Statut Membre -
NookZ Messages postés 2376 Statut Membre -
Bonjour,
J'ai un petit probleme avec ma fonction censée controler la date mais ça ne marche pas
J'ai un champ date, et un bouton "OK"
<?php
echo 'Date demande : <input type="text" name="Date_demande" size="10"/>';?>
echo'<input type="button" value="OK" name="Ok" onclick="verifdate();">';
?>
Et ensuite voici ma fonction verifdate()
<script type="text/javascript">
function verifdate()
{
if(document.formulaire.Date_demande.value==""){alert("Date manquante");return false;}
tdat=document.formulaire.Date_demande.value.split("/"); // On sépare ce qui a été saisi
testDate=new Date(tdat[2],tdat[1]-1,tdat[0]); // On crée une date avec
// Avec FireFox, on a 108 pour 2008, donc
if(testDate.getYear()<1000){tdat[2]=tdat[2]-1900;}
if((testDate.getDate()!=tdat[0])||(testDate.getMonth()!=tdat[1]-1)||(testDate.getYear()!=tdat[2])){
alert("Date erronée");return false;}
return true;
}
</script>
Ai je oublier quelque chose?
Merci de votre aide
J'ai un petit probleme avec ma fonction censée controler la date mais ça ne marche pas
J'ai un champ date, et un bouton "OK"
<?php
echo 'Date demande : <input type="text" name="Date_demande" size="10"/>';?>
echo'<input type="button" value="OK" name="Ok" onclick="verifdate();">';
?>
Et ensuite voici ma fonction verifdate()
<script type="text/javascript">
function verifdate()
{
if(document.formulaire.Date_demande.value==""){alert("Date manquante");return false;}
tdat=document.formulaire.Date_demande.value.split("/"); // On sépare ce qui a été saisi
testDate=new Date(tdat[2],tdat[1]-1,tdat[0]); // On crée une date avec
// Avec FireFox, on a 108 pour 2008, donc
if(testDate.getYear()<1000){tdat[2]=tdat[2]-1900;}
if((testDate.getDate()!=tdat[0])||(testDate.getMonth()!=tdat[1]-1)||(testDate.getYear()!=tdat[2])){
alert("Date erronée");return false;}
return true;
}
</script>
Ai je oublier quelque chose?
Merci de votre aide
A voir également:
- Javascript controle de date
- Fan controle - Télécharger - Optimisation
- Airpods 3 date de sortie - Guide
- Telecharger javascript - Télécharger - Langages
- Controle parental disney plus - Guide
- Office 2024 date de sortie - Accueil - Bureautique
1 réponse
Je vois déjà un premier soucis, c'est qu'il faudrait vérifier déjà que la date était bien composée de / (1/) ou alors forcer ce format déjà en partie grâce au HTML(2/).
1/if(tdat[0])
2/
<?php
echo 'Date demande : <input type="text" name="Jour_demande" size="2"/>/<input type="text" name="Mois_demande" size="2"/>/<input type="text" name="Annee_demande" size="3"/>';?>
Sinon je ne comprend pas la logique de ceci :
if(testDate.getYear()<1000){tdat[2]=tdat[2]-1900;}
car si tu as bien 108 pour récupérer 2008, il faudrait faire
if(testDate.getYear()<1000){tdat[2]=tdat[2]+1900;}
Ensuite si on suit ta logique, il faudrait effectuer la création de date après avoir remis l'année à 2008 sinon la date sera faussée
testDate=new Date(tdat[2],tdat[1]-1,tdat[0]); // On crée une date avec
// Avec FireFox, on a 108 pour 2008, donc
if(testDate.getYear()<1000){
tdat[2]=tdat[2]-1900;
testDate=new Date(tdat[2],tdat[1]-1,tdat[0]); // On recrée la date après avoir récupérée l'année correcte
}
1/if(tdat[0])
2/
<?php
echo 'Date demande : <input type="text" name="Jour_demande" size="2"/>/<input type="text" name="Mois_demande" size="2"/>/<input type="text" name="Annee_demande" size="3"/>';?>
Sinon je ne comprend pas la logique de ceci :
if(testDate.getYear()<1000){tdat[2]=tdat[2]-1900;}
car si tu as bien 108 pour récupérer 2008, il faudrait faire
if(testDate.getYear()<1000){tdat[2]=tdat[2]+1900;}
Ensuite si on suit ta logique, il faudrait effectuer la création de date après avoir remis l'année à 2008 sinon la date sera faussée
testDate=new Date(tdat[2],tdat[1]-1,tdat[0]); // On crée une date avec
// Avec FireFox, on a 108 pour 2008, donc
if(testDate.getYear()<1000){
tdat[2]=tdat[2]-1900;
testDate=new Date(tdat[2],tdat[1]-1,tdat[0]); // On recrée la date après avoir récupérée l'année correcte
}