[Javascript] Savoir si une date est postérieure à une autre

Savoir si une date est postérieure à une autre [Javascript] - HTML/CSS - Programmation

Marsh Posté le 21-07-2003 à 10:52:49    

Comment savoir si une date est postérieure à une autre en javascript ?
 
  merci d'avance


---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
Reply

Marsh Posté le 21-07-2003 à 10:52:49   

Reply

Marsh Posté le 21-07-2003 à 11:04:21    

Ecris tes dates de la même façon (dans l'ordre annee, mois, jour)et compare les betement avec >.
Tu peux comparer soit comme des string soit comme des ints.

Code :
  1. var date_int1 = 20020101;
  2. var date_int2 = 20021201;
  3. alert(date_int1 > date_int2);
  4. var date_char1 = "2002-01-01";
  5. var date_char2 = "2002-12-01";
  6. alert(date_char1 > date_char2);


Ah oui dans les deux cas oublies pas le zero devant le jour si celui-ci est inférieur a 10.
 

Reply

Marsh Posté le 21-07-2003 à 11:11:30    

comment peut-on passer d'une date JJ/MM/AAAA à une date AAAAMMJJ en javascript ?


Message édité par sire de Botcor le 21-07-2003 à 11:11:53

---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
Reply

Marsh Posté le 21-07-2003 à 11:15:27    

tu serais pas un peu feignasse le lundi matin toi?  ;)  
J'en sais rien tu split sur les / et tu remets dans le bon ordre, ou tu le fais avec une regex !!!

Reply

Marsh Posté le 21-07-2003 à 11:19:33    

Anapajari a écrit :

tu serais pas un peu feignasse le lundi matin toi?  ;)  
J'en sais rien tu split sur les / et tu remets dans le bon ordre, ou tu le fais avec une regex !!!


 
je connais pas trop la synthaxe javascript en fait...
ça marcherait ? un truc comme ça :
 

Code :
  1. d="31/12/2003";
  2. j = parseInt(d.split("/" )[0], 10); // jour   
  3. m = parseInt(d.split("/" )[1], 10); // mois     
  4. a = parseInt(d.split("/" )[2], 10); // année
  5. d="a"+"m"+"j";


---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
Reply

Marsh Posté le 21-07-2003 à 11:24:55    

bin ça marcherait mais ça ferait pas ce que tu demandes...
Si tu alert d tu vas avoir: amj ...
Ecrit ça plutôt:

Code :
  1. d="31/12/2003";
  2.    j = d.split("/" )[0]; // jour     
  3.    m = d.split("/" )[1]; // mois       
  4.    a = d.split("/" )[2]; // année
  5.    d= parseInt(""+a+m+j, 10);
  6.    alert(d);


Et vaut mieux parseInter ( si ça existe comme mot) ton resultat car si tu as 05 comme jour il va te le convertir en 5 sinon...

Reply

Marsh Posté le 21-07-2003 à 11:52:44    

[:spikler]  
 
je viens d'essayer ça :

Code :
  1. var d = String(document.form1.dateProchaineReunion.value);
  2. var dauj = String(document.form1.dateReunion.value);
  3.                
  4.         var j = d.split("/" )[0]; // jour     
  5.         var m = d.split("/" )[1]; // mois       
  6.         var a = d.split("/" )[2]; // année
  7.         d= parseInt(""+a+m+j, 10);
  8.        
  9.         var jauj = dauj.split("/" )[0]; // jour     
  10.         var mauj = dauj.split("/" )[1]; // mois       
  11.         var aauj = dauj.split("/" )[2]; // année
  12.         dauj2= parseInt(""+aauj+mauj+jauj, 10);
  13.        
  14.         if (d!="" && dauj2>d)
  15.         {
  16.             alert("La date de cette réunion ("+dauj+" ) ne peut pas être postérieure à la date de la prochaine réunion !" );
  17.             i = i + 1;
  18.         }


ça marche (les noms de variables sont pas terribles m'enfin...)


---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
Reply

Marsh Posté le 21-07-2003 à 12:19:42    

nickel si ça marche, pis pour les noms de variables si tu n'as pas besoin du detail pour faire des tests ( exemple jour < 31) pourquoi ne pas ecrire directement:

Code :
  1. d= parseInt(""+d.split("/" )[2]+d.split("/" )[1]+d.split("/" )[0], 10);
  2.           dauj2= parseInt(""+dauj.split("/" )[2]+dauj.split("/" )[1]+dauj.split("/" )[0], 10);

Reply

Marsh Posté le 11-10-2011 à 16:37:57    

Si cela peut être utile, j'utilise cette fonction php bien pratique :
 
<?php
 
function Change_formatDate($date, $format = 'fr')
{
$r = '^([0-9]{1,4}).([0-9]{1,2}).([0-9]{1,4})$';
if($format === 'en')
return ereg_replace($r, '\\3-\\2-\\1', $date);
return ereg_replace($r, '\\3/\\2/\\1', $date);
}  
 
?>  
 


---------------
-------------------------
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed