J'ai deux objets Date et je veux calculer la différence en heures.
Si la différence d'heures est inférieure à 18 heures, je souhaite déplacer l'objet Date dans un tableau.
Javascript/jQuery n'a pas vraiment d'importance; ce qui fonctionne le mieux fera.
Le moyen le plus simple serait de soustraire directement les objets de date les uns des autres.
Par exemple:
var hours = 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
, divisant par lequel convertit la différence en millisecondes en heures.
Essayez d’utiliser getTime
( mdn doc ):
var diff = Math.abs(date1.getTime() - date2.getTime()) / 3600000;
if (diff < 18) { /* do something */ }
En utilisant Math.abs()
, nous ne savons pas quelle date est la plus petite. Ce code est probablement plus pertinent:
var diff = (date1 - date2) / 3600000;
if (diff < 18) { array.Push(date1); }
Utilisez l'horodatage que vous obtenez en appelant valueOf
sur l'objet de date:
var diff = date2.valueOf() - date1.valueOf();
var diffInHours = diff/1000/60/60; // Convert milliseconds to hours