Вот способ сделать это, используя способ добавления одного дня, при котором дата переносится на следующий месяц, если это необходимо, и не возиться с миллисекундами. Летнее время тоже не проблема.
var now = new Date();
var daysOfYear = [];
for (var d = new Date(2012, 0, 1); d <= now; d.setDate(d.getDate() + 1)) {
daysOfYear.push(new Date(d));
}
Обратите внимание, что если вы хотите сохранить дату, вам нужно будет создать новую (как указано выше с помощью new Date(d)
), иначе вы в конечном итоге получите каждую сохраненную дату, являющуюся конечным значением d
в цикле.