Лучше избавиться от DST, Math.ceil, Math.floor и т. д., используя время UTC:
var firstDate = Date.UTC(2015,01,2);
var secondDate = Date.UTC(2015,04,22);
var diff = Math.abs((firstDate.valueOf()
- secondDate.valueOf())/(24*60*60*1000));
Этот пример дает разницу 109 дней. 24*60*60*1000
- один день в миллисекундах.