Javascript probleme format date

Signaler
Messages postés
5
Date d'inscription
lundi 17 mai 2004
Statut
Membre
Dernière intervention
16 juin 2004
-
Messages postés
5
Date d'inscription
lundi 17 mai 2004
Statut
Membre
Dernière intervention
16 juin 2004
-
bonjour
je suis en asp et sur ma base sql ma variable date_pret et date retour sont enregistrés en format jj/mm/aaaa et je voudrai controler date_pret et date_retour en javascript pour securiser mes donnees mais bien sur quand je controle il me dit que le 02/06/2004 est avant le 31/05/2004, il me faudrai le code pour inverser le format au moins pour le controle en aaaa/mm/jj , et là je pourrai utiliser < ou <.
merci

8 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
Bonjour,
bêtement, j'aurais fait comme ça :
<script type="text/javascript">
function amj1(dat)
{ var d1=dat.split("/");
  return (d1[2]*12*31)+(d1[1]*31)+d1[0];    }
var deb=amj1("02/06/2004");
var fin=amj1("31/05/2004");
alert(deb + "\r\n" +fin);
</script>

ou comme ça :
<script type="text/javascript">
function amj2(dat)
{ return dat.substring(6,11)+dat.substring(3,5)+dat.substring(0,2); }
deb=amj2("02/06/2004");
fin=amj2("31/05/2004");
alert(deb + "\r\n" +fin);
</script>

mais il doit bien exister une
fonction toute faite ?
Cordialement Bul. [Site] [[mailto:marcel.Bultez@Tiscali.fr Mail]]
Messages postés
5
Date d'inscription
lundi 17 mai 2004
Statut
Membre
Dernière intervention
16 juin 2004

salut
merci a toi je vais essayer des lundi,

je suis debutant et je suis en formation entreprise et je ne connais pas javasript c'est pour cette raison que je suis un peu paumé

ca a peut etre l'air tres simple pour toi mais moi j'apprend encore et encore

encore merci et je te tiens au courant

WANTED
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
ca a peut etre l'air tres simple pour toi
ce n'est pas l'impression que je voulais donner
mais moi j'apprend encore et encore
moi aussi
désolé si je me suis mal exprimé, il n'y avait
aucun sous-entendus ou quoique ce soit de
péjoratif/désobligeant dans mes propos, au
contraire car c'est moi qui suis loin d'être sûr
d'avoir donner "la meilleure solution" : c'est ce
que je voulais dire.
Cordialement Bul. [Site] [[mailto:marcel.Bultez@Tiscali.fr Mail]]
Messages postés
5
Date d'inscription
lundi 17 mai 2004
Statut
Membre
Dernière intervention
16 juin 2004

salut
t'en fais pas je l'ai pas mal pris, mais je pense que tu connais le soucis quand on debute on voit plein de choses mais on ne sait pas bien les utiliser.

content d'avoir des reponses c'est sympa et a tres bientot

PS: j'ai pris l'adresse de ton site je vais aller voir

WANTED
Messages postés
5
Date d'inscription
lundi 17 mai 2004
Statut
Membre
Dernière intervention
16 juin 2004

salut
je pense que ton code ne convient pas a ma recherche voici ce qu'il etait:
//if (document.formSaisie.date_retour.value < document.formSaisie.date_pret.value ){
//alert ("Saisissez une autre date de retour");
//document.formSaisie.date_retour.focus();
//return false; //arrete la fonction du bouton

et j'ai essayé aussi:

JDeb = document.formSaisie[0].date_pret[2].selectedIndex ; // jour debut
MDeb = document.formSaisie[0].date_pret[3].selectedIndex; // mois debut
ADeb = document.formSaisie[0].date_pret[4].selectedIndex; //annee debut
JFin = document.formSaisie[0].date_retour[5].selectedIndex ; // jour fin
MFin = document.formSaisie[0].date_retour[6].selectedIndex; // mois fin
AFin = document.formSaisie[0].date_retour[7].selectedIndex; //annee fin
date_pret = new Date(ADeb, MDeb, JDeb);
date_retour = new Date(AFin, MFin, JFin);
if(date_retour < date_pret) {
alert ("Saisissez une autre date de retour");
document.formSaisie.date_retour.focus();
return(false);

mais y doit y avoir boulette !!!!

merci de votre aide

A+ wanted
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
faire alert(date_pret); et regarder ce que ça donne
=> "comparaison difficile"
on peut comparer (année*12*31)+(mois*31)+jour
Cordialement Bul. [Site] [[mailto:marcel.Bultez@Tiscali.fr Mail]]
Messages postés
111
Date d'inscription
mardi 8 janvier 2002
Statut
Membre
Dernière intervention
19 décembre 2006

sinon tu peux essayer de comparer a la 'barbare' les dates a condition qu'il y ait le meme nombre de chiffres(4 pour les annees, 2 pour les jours et les mois)

date_pret = ADeb + MDeb + JDeb; //normalement ce sont des strings sinon faut caster.
date_retour = AFin + MFin + JDeb;

une autre solution plus esthetique serait de prendre un calendrier. Ainsi tu ne seras pas oblige, de contrôler que l'utilisateur ne rentre pas des dates farfelues comme le 31/02/2004. Tu trouveras le code sous la rubrique date & heure.

Lapin, lapin, ...
Messages postés
5
Date d'inscription
lundi 17 mai 2004
Statut
Membre
Dernière intervention
16 juin 2004

salut a tous
merci de votre aide et voila comment finalement j'ai resolu le probleme:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<form name="form1" action=""> // 1er champ

</form>
<form name="form2" action="">
// 2eme champ

</form>
<form name="form4" action=""> //3eme champ bouton controle

</form>

<script language="JavaScript">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<tr>
<td align="left" nowrap rowspan="-19" colspan="2">Pour concertir les 2 dates
entrez les dates avec un séparateur puis cliquez sur "Envoyer".
</td>
</tr>
<form name="form1" action="">

</form>
<form name="form2" action="">

</form>
<tr>
<td align="left" nowrap rowspan="-19" colspan="2">Pour vérifier les 2 dates converties
cliquez sur "vérifier".
</td>
</tr
<form name="form4" action="">

</form>

<script language="JavaScript">
function toto() { // appel 1ere procedure renverser date
document.form1.textfield2.value = renverseStrDate(document.form1.textfield.value);
return(false);
}
function toto1() { // appel 2eme procedure renverser date
document.form2.textfield3.value = renverseStrDate1(document.form2.textfield1.value);
return(false);
}

function renverseStrDate(sIn) { //1ere procedure renverse date
var sOut = "";
// : 01346789
//-->67893401
sOut = sIn.charAt(6) + sIn.charAt(7) + sIn.charAt(8)+ sIn.charAt(9) + "/" + sIn.charAt(3)+ sIn.charAt(4) + "/" + sIn.charAt(0)+ sIn.charAt(1)
alert("sIn=["+sIn+"], sOut=["+sOut+"]");

return(sOut);
}
function renverseStrDate1(sIn1) { //2eme procedure renverse date
var sOut1 = "";
// : 01346789
//-->67893401
sOut1 = sIn1.charAt(6) + sIn1.charAt(7) + sIn1.charAt(8)+ sIn1.charAt(9) + "/" + sIn1.charAt(3)+ sIn1.charAt(4) + "/" + sIn1.charAt(0)+ sIn1.charAt(1)
alert("sIn1=["+sIn1+"], sOut1=["+sOut1+"]");

return(sOut1);
}
function verifier() { // procedure du bouton vérifier
if (document.form1.textfield2.value < document.form2.textfield3.value) {
alert("la première date est inférieure à la deuxième");
}

if (document.form2.textfield3.value < document.form1.textfield2.value) {
alert("la première date est supérieure à la deuxième");

}
}
</script>
</html>

dans mon source final apres evoir modifié et intégré ces quelque lignes j'ai effectivement utilisé un calendrier pour eviter toute date farfelue
A +

wanted87