129 votes

Comment obtenir la différence d'heures entre deux objets de date ?

J'ai deux objets Date et je veux calculer la différence en heures.

Si la différence en heures est inférieure à 18 heures, je veux pousser l'objet date dans un tableau.

Javascript / jQuery, peu importe; ce qui fonctionne le mieux fera l'affaire.

306voto

Boaz Points 5627

La manière la plus simple serait de soustraire directement les objets de date les uns des autres.

Par exemple:

var heures = Math.abs(date1 - date2) / 36e5;

La soustraction renvoie la différence entre les deux dates en millisecondes. 36e5 est la notation scientifique pour 60*60*1000, divisée par laquelle convertit la différence en millisecondes en heures.

58voto

Essayez d'utiliser getTime (doc mdn) :

var diff = Math.abs(date1.getTime() - date2.getTime()) / 3600000;
if (diff < 18) { /* faire quelque chose */ }

En utilisant Math.abs() on ne sait pas quelle date est la plus petite. Ce code est probablement plus pertinent :

var diff = (date1 - date2) / 3600000;
if (diff < 18) { array.push(date1); }

12voto

Matt Zeunert Points 5083

Utilisez le timestamp obtenu en appelant valueOf sur l'objet date :

var diff = date2.valueOf() - date1.valueOf();
var diffEnHeures = diff/1000/60/60; // Convertir les millisecondes en heures

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X