Значения даты в JS являются значениями даты и времени.
Итак, прямые вычисления даты непоследовательны:
(2013-11-05 00:00:00) - (2013-11-04 10:10:10) < 1 day
, например, нам нужно преобразовать вторую дату:
(2013-11-05 00:00:00) - (2013-11-04 00:00:00) = 1 day
метод может обрезать мельницы в обеих датах:
var date1 = new Date('2013/11/04 00:00:00');
var date2 = new Date('2013/11/04 10:10:10'); //less than 1
var start = Math.floor(date1.getTime() / (3600 * 24 * 1000)); //days as integer from..
var end = Math.floor(date2.getTime() / (3600 * 24 * 1000)); //days as integer from..
var daysDiff = end - start; // exact dates
console.log(daysDiff);
date2 = new Date('2013/11/05 00:00:00'); //1
var start = Math.floor(date1.getTime() / (3600 * 24 * 1000)); //days as integer from..
var end = Math.floor(date2.getTime() / (3600 * 24 * 1000)); //days as integer from..
var daysDiff = end - start; // exact dates
console.log(daysDiff);