Les dates avec java script

Mimi -  
intassoura intissar Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voici ce code java script qui vérifie si la début >date_fin
Je veux transformer se code pour qu'il vérifie la date de cette forme 2012 /05/ 28 au lieu de cette forme 28 /05/2012

<head> 
<script type="text/javascript"> 
<!-- 
// Script proposé par Marcus Eric - V1 : 2005 
// V2 : 08/2006 

// Enleve le '0' des nb < 10 
function ConvNum(tabDeDate) { 
for (i=0; i<tabDeDate.length; i++) 
tabDeDate[i] = (tabDeDate[i].charAt(0)=='0')?tabDeDate[i].charAt(1):tabDeDate[i]; 
return tabDeDate; 
} 

// Retourne true si valeur_date est postérieure à la date du jour 
function DateFuture(valeur_date) 
{var tabDate = valeur_date.split('/'); 
var datAujourdhui = new Date(); 
tabDate = ConvNum(tabDate); 
if (valeur_date.length > 0) 
{ var datTest_Date = new Date(parseInt(tabDate[2]), parseInt(tabDate[1])-1, parseInt(tabDate[0])); 
if (datTest_Date <= datAujourdhui) return false; 
} 
return true; 
} 

// Retourne 1 si valeur_date1 < valeur_date2 
// 0 si valeur_date1 = valeur_date2 
// -1 si valeur_date1 > valeur_date2 
function Compare_Dates(valeur_date1, valeur_date2) 
{var tabDate1 = valeur_date1.split('/'); 
tabDate1 = ConvNum(tabDate1); 
var datTest_Date1 = new Date(parseInt(tabDate1[2]), parseInt(tabDate1[1])-1, parseInt(tabDate1[0])); 
var tabDate2 = valeur_date2.split('/'); 
tabDate2 = ConvNum(tabDate2); 
var datTest_Date2 = new Date(parseInt(tabDate2[2]), parseInt(tabDate2[1])-1, parseInt(tabDate2[0])); 
return (datTest_Date2-datTest_Date1==0)?"0":(datTest_Date2-datTest_Date1<0)?"-1":"1"; 
} 

// Vérifie le format d une date saisie 
function Verif_Date(valeur_date) 
{ var tabDate = valeur_date.split('/'); 
tabDate = ConvNum(tabDate); 
var datTest_Date = new Date(parseInt(tabDate[2]), parseInt(tabDate[1])-1, parseInt(tabDate[0])); 
if (valeur_date.length>10) 
{ alert('Ne dois pas dépasser 10 caractères.'); 
return false; 
} 
for (i=0; i<valeur_date.length; i++) 
{ if (valeur_date.charAt(i) == ' ') 
{ alert("La date ne doit pas contenir d\'espaces."); 
return false; 
} 
} 
if (valeur_date.length > 0) 
{ if ((parseInt(tabDate[0]) != datTest_Date.getDate()) || (parseInt(tabDate[1]) != parseInt(datTest_Date.getMonth())+1)) 
{ alert("Veuillez saisir la date au format 'J/M/SSAA' ou JJ/MM/SSAA.\n\nex : 6/6/2004 ou 06/06/2004"); 
return false; 
} 
if ((tabDate[2].length != 4) || (parseInt(tabDate[2]) < 1980) || (parseInt(tabDate[2]) > 2099)) 
{ alert("Veuillez saisir l'année sur 4 chiffres.\n\nElle doit être comprise entre 1980 et 2099."); 
return false; 
} 
} 
return true; 
} 

function ControleDates() { 
var strMsg=''; 
if (Verif_Date(document.getElementById('debut').value) && Verif_Date(document.getElementById('fin').value)) { 
switch (Compare_Dates(document.getElementById('debut').value, document.getElementById('fin').value)) { 
case "-1" : 
alert('KO:\nDate début > Date fin'); break; 
case "0" : 
alert('KO:\nDate début = Date fin'); break; 
case "1" : 
alert('OK:\nDate début < Date fin'); break; 
default : 
alert('Comparaison impossible');break; 
} 
} 
} 
//--> 
</script>

Merci D'avance de votre aide
A voir également:

3 réponses

[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut Mimi,

Tu te compliques la vie.

Avec un format "2012/05/28" les chaînes de caractères composant ces dates peuvent être comparées par Javascript avec ses opérateurs standards (==, < ou >). La raison en est que le tri alphabétique de ces chaînes de caractères se trouve correspondre aussi à l'ordre chronologique.

Il suffit préalablement de vérifier que la saisie correspond à ce format et la comparaison est triviale.

Par exemple :

var date1 = "2012/05/28";  
var date2 = "2012/05/27";  

if ( date1.match(/^\d{4}\/\d{2}\/\d{2}$/) && date2.match(/^\d{4}\/\d{2}\/\d{2}$/) )   
{  
  if (date1 == date2) alert("les dates sont identiques")  
  else if (date1 < date2) alert("La première date est antérieure")  
  else if (date1 > date2) alert("La deuxième date est antérieure");  
} else  
{  
  alert("Erreur : les dates doivent être au format aaaa/mm/jj.");  
}

Dal
0
Mimi
 
Salut,
Merci Dal ,j'avais un problème de connexion
0
DarkAurora Messages postés 417 Date d'inscription   Statut Membre Dernière intervention   27
 
petit code pour changer l'ordre
->Date = Date.substr(6,4)+'-'+Date.substr(3,2)+'-'+Date.substr(0,2);

avec un datepicker au format calendrier little endian, (jj/mm/aaaa) cela peut être utile plustôt que de forcer l'utilisateur à saisir la date dans un format inhabituel

le code ci-dessus te permet de retranscrire une date (jj/mm/aaaa) en (aaaa/mm/jj)
0
intassoura intissar Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
bjr
plz tu me donne un petite code simple de vérifier que la date d'une demande est acceptée si la date de formulaire choisie est supérieur à date d'aujourd'hui . plz j'att une réponse merci
0