Rechercher : dans
Par :

[JAVASCRIPT] convertir une date et comparer

Dernière réponse le 28 mar 2008 à 18:04:15 Isabelle, le 19 déc 2005 à 11:53:56 
 Signaler ce message aux modérateurs

Bonjour,
Je désire convertir deux chaine au format "dd/mm/yyyy" en date javascript, puis comparer les deux dates.

Avez-vous un script sous la main ? je ne trouve rien de concluant sur Google.




Merci d'avance pour toute réponse


Isabelle

Meilleures réponses pour « [JAVASCRIPT] convertir une date et comparer » dans :
Javascript - Date de dernière modification de la page VoirIl est possible, en langage Javascript, d'afficher la date de dernière modification de la page Web grâce à la propriété lastModified de l'objet document :
Télécharger Database Comparer VCL VoirLa programmation est un travail de longue haleine, l’ordre et l’organisation sont des maîtres mots. Database Comparer VCL est un composant permettant de comparer et de synchroniser la structure des tables d'une base de donnés ainsi que de...
Javascript - L'objet Date VoirLes particularités de l'objet Date L'objet Date permet de travailler avec toutes les variables qui concernent les dates et la gestion du temps. Il s'agit d'un objet inclus de façon native dans Javascript, et que l'on peut toujours utiliser. La...
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...
Javascript - Implantation du code VoirA quel emplacement insérer le Javascript dans votre page HTML Il existe plusieurs façons d'inclure du JavaScript dans une page HTML : Grâce à la balise En mettant le code dans un fichier Grâce aux événements Dans la balise...

1

Zep3k!GnO, le 19 déc 2005 à 11:56:24

en date javascript
tu veux dire par la ?! ( indique le format ,ex : jj/mm/aaaa)

Zep3k!GnO

Répondre à Zep3k!GnO

2

isabelle, le 19 déc 2005 à 12:20:54

Genre : du type date.
Le format "dd/mm/yyyy"

Répondre à isabelle

3

HackTrack, le 19 déc 2005 à 13:07:56
  • +8

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>

	<script>
	  //On suppose que la date entrée a été validée auparavant
	  //au format dd/mm/yyyy
	  function getDate(strDate){	  
	    day = strDate.substring(0,2);
		month = strDate.substring(3,5);
		year = strDate.substring(6,10);
		d = new Date();
		d.setDate(day);
		d.setMonth(month);
		d.setFullYear(year); 
		return d;  
	  }
	  
	  //Retorune:
	  //   0 si date_1=date_2
  	  //   1 si date_1>date_2
	  //  -1 si date_1<date_2	  
	  function compare(date_1, date_2){
	    diff = date_1.getTime()-date_2.getTime();
	    return (diff==0?diff:diff/Math.abs(diff));
	  }

	</script>
</head>

<body>

Date 1: <input name="d1" id="d1" type="text" value="01/10/2004" /><br/>
Date 2: <input name="d2" id="d2" type="text" value="02/05/2005" />
<p/>
<button onclick="javascript: alert(compare(getDate(document.all('d1').value),getDate(document.all('d2').value)));">Comparer</button>
</body>
</html>


;-)
HackTrack

Répondre à HackTrack

4

Fraisouille, le 27 oct 2006 à 10:21:51
  • +1

Attention avec javascript il faut retirer un au mois quand on détermine une date: dans le code ci-dessus il faut utiliser

d.setMonth(month-1);

plutôt que
d.setMonth(month);


;)

Répondre à Fraisouille

5

Maxkater, le 1 fév 2007 à 13:48:10
  • +1

Mmm il n'y a pas un autre problème aussi ?

		d = new Date();
		d.setDate(day);
		d.setMonth(month-1);
		d.setFullYear(year); 
		return d;  


Lorsque l'on dit new Date(), cela prend la date du jour. Or si par exemple on est en Février avec 28 jours dans le mois...

Si day vaut 31, vu que l'on execute le setDate en premier, la date va valoir 31/02/2006... Qui va etre converti automatiquement en 03/03/2006... Ce qui déjà à partir de là retourne une mauvaise date non ?

A ce moment là on peut tout simplement mettre à la place :

d = new Date(0); //01/01/1970


Ainsi on est sur. Parce que Janvier est un mois à 31 jours, donc on ne va pas déborder.

Répondre à Maxkater

6

un peu en retard mais quand meme, le 22 nov 2007 à 13:59:34

Merci

Répondre à un peu en retard mais quand meme

7

Mael2, le 4 déc 2007 à 15:55:49
  • +3

Il faut penser aussi aux années bissextiles.

Cette année on est en 2007.

Donc si on a :
day = 29
month = 2
year = 2000

Et si on fait ceci :

d = new Date();
d.setDate(day);
d.setMonth(month-1);
d.setFullYear(year);
return d;

On aura en fait dans d le 01/03/2000

Il faudrait indiquer d'abord l'année, puis le mois et enfin le jour :
d = new Date();
d.setFullYear(year);
d.setMonth(month-1);
d.setDate(day);
return d;

Plus simplement on peut faire :
d = new Date(year, month-1, day);

Répondre à Mael2

8

 Throdo, le 28 mar 2008 à 18:04:15
  • +2

En faisant appel à la méthode parse de l'obejt Date qui récupère le nombre de milliseconde depuis la date de référence de Javascript (env. 1970).
Il suffit après de faire une différence pour connaître si la date est supérieure, égale ou inférieure.

function fCompareDate(pDateDebut,pDateFin) {
var DureeDebut = Date.parse(pDateDebut);
var DureeFin = Date.parse(pDateFin);

var iComparaison= DureeFin - DureeDebut;

return iComparaison;
}

On peut décliner différemment l'utilisation de cette fonction selon les besoins.

Merci à SelfHTML pour les infos sur l'objet Date.
Lien direct vers la ressource : http://fr.selfhtml.org/javascript/objets/date.htm

Répondre à Throdo