var from= new Date(2013, 5, 12);
var to= new Date(2016, 2, 25);
getRange(from, to);
function getRange(dateFrom, dateTo) {
var dayRange = (dateTo - dateFrom)/(1000 * 60 * 60 * 24);
var result = {};
for(var i = 0; i < dayRange; i++) {
if (typeof result[dateFrom.getFullYear()] == "undefined")
result[dateFrom.getFullYear()] = {};
if (typeof result[dateFrom.getFullYear()][dateFrom.getMonth()+1] == "undefined")
result[dateFrom.getFullYear()][dateFrom.getMonth()+1] = [];
result[dateFrom.getFullYear()][dateFrom.getMonth()+1].push(dateFrom.getDate());
dateFrom.setDate(dateFrom.getDate() + 1);
}
return result;
}
Удалил все комменты, надеюсь и так всё ясно.