Utiliser l'objet Date de javascript pour effectuer des calculs sur les datesComment 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.";
}
|
AuteurNicolas GAUTRONCréateur et administrateur. http://www.informatix.fr |
Dans la même catégorie
Le principe de l'AJAXMise en place d'un calendrier comprenant date et heure.
Apparition d'une fenetre de saisie avec jquery.

