Javascript probleme format date

wanted87 Messages postés 5 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 16 juin 2004 - 11 juin 2004 à 17:03
wanted87 Messages postés 5 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 16 juin 2004 - 16 juin 2004 à 10:13
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
A voir également:

8 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
12 juin 2004 à 10:34
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]]
0
wanted87 Messages postés 5 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 16 juin 2004
12 juin 2004 à 11:57
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
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
12 juin 2004 à 13:16
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]]
0
wanted87 Messages postés 5 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 16 juin 2004
12 juin 2004 à 23:51
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wanted87 Messages postés 5 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 16 juin 2004
14 juin 2004 à 10:16
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
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
14 juin 2004 à 10:47
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]]
0
cs_daeron Messages postés 111 Date d'inscription mardi 8 janvier 2002 Statut Membre Dernière intervention 19 décembre 2006
15 juin 2004 à 12:10
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, ...
0
wanted87 Messages postés 5 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 16 juin 2004
16 juin 2004 à 10:13
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
0
Rejoignez-nous