Informatix le gaulois

Tutoriels et outils pour l'informatique.

Informatix > Tutoriels > Javascript > Utiliser l'objet Date de javascript pour effectuer des calculs sur les dates

Utiliser l'objet Date de javascript pour effectuer des calculs sur les dates

Comment calculer la différence entre deux dates ?

jeudi 21 avril 2011 à 16:13

Ce tutoriel a pour but de vous apprendre à recréer la partie de calcul de dates de cet outil "soustraire des dates".

Calcul de la différence entre 2 dates

/* Une regexp pour vérifier que les dates sont au format jj/MM/aaaa hh:mm */
var testDate = new RegExp("^[0-9]{2}/[0-9]{2}/[0-9]{4} [0-9]{2}:[0-9]{2}$");

/* La variable data est la variable de retour de notre fonction, on peut l'afficher ou autre, à vous de choisir. */
var data; 

/* Si les deux dates sont dans un format correct on commence le calcul, sinon on renvoie un message d'erreur. */
if (testDate.test(date) && testDate.test(date2))
{
	/* On instancie la classe Date (c'est une classe native de js).
	** Le format de la date est jj/MM/aaaa hh:mm, date.substring(3,5) est égal à MM
	** [substring(a, b) découpe la chaine de caractères du caractère a jusqu'au b-1].
 	*/
	datedebut = new Date();
	datedebut.setDate(date.substring(0,2));
	datedebut.setMonth(date.substring(3,5));
	datedebut.setFullYear(date.substring(6,10));
	datedebut.setHours(date.substring(11,13));
	datedebut.setMinutes(date.substring(14,16));

	datefin = new Date();
	datefin.setDate(date2.substring(0,2));
	datefin.setMonth(date2.substring(3,5));
	datefin.setFullYear(date2.substring(6,10));
	datefin.setHours(date2.substring(11,13));
	datefin.setMinutes(date2.substring(14,16));
	
	/* La méthode getTime() retourne le timestamp (nombre de millisecondes écoulées depuis le 01/01/1970 00:00) de la date. 
En soustrayant les timestamps nous obtenons donc le nombre de millisecondes entre les deux dates. */
	var resultat = datefin.getTime() - datedebut.getTime();
	
	data = " Timestamp 1 : " + datedebut.getTime() + "
"; data += " Timestamp 2 : " + datefin.getTime() + "
"; data += "
Soit :
"; /* Il y a 86 400 000 millisecondes dans une journée, ** 3 600 000 dans une heure, ** 60 000 dans une minute, ** 1 000 dans une seconde. ** Math.round() permet de faire un arrondi à 0,01. */ data += resultat/86400000 + " jours" + "
"; data += resultat/3600000 + " heures" + "
"; data += Math.round(resultat/60000) + " minutes" + "
"; data += Math.round(resultat/1000) + " secondes" + "
"; } else { data = "Le format de l'une des dates est incorrect."; }
Nicolas GAUTRON

Auteur

Nicolas GAUTRON
Créateur et administrateur.
http://www.informatix.fr



^ Haut de page ^



Dans la même catégorie

Le principe de l'AJAX
Mise en place d'un calendrier comprenant date et heure.
Apparition d'une fenetre de saisie avec jquery.


Commentaire(s)



^ Haut de page | Commentaires ^