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

Comment calculer la différence entre deux dates ?

21 avril 2011

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."; }
Par
Créateur et administrateur.

Dans la même catégorie

Ecrire une extension pour Google Chrome
JSONP : envoyer des requêtes cross-domains
Chargement asynchrone d'images en javascript
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)