La plupart de ces solutions ignorer un cas qui échoue lorsque les deux dates, allez dans une heure d'été de changer. Dans ce cas, la date d'heure d'été et changement se produit aura une durée en millisecondes, ce qui != 1000*60*60*24, ainsi, le calcul type échouera.
D'une façon plus précise pour obtenir le nombre de jours entre deux javascript dates peuvent être écrites comme suit:
var _MS_PER_DAY = 1000 * 60 * 60 * 24;
// a and b are javascript Date objects
function dateDiffInDays(a, b) {
// Discard the time and time-zone information.
var utc1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate());
var utc2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate());
return Math.floor((utc2 - utc1) / _MS_PER_DAY);
}
Cela fonctionne parce que l'heure UTC jamais observe l'heure d'été. Voir N'est UTC observer l'heure d'été?