Интрвал времени JS в массив

 
0
 
JavaScript
ava
Sanchezzz | 18.02.2013, 13:59

function test1(){
    var curent = new Date(2013, 2, 18),
    interval = new Date(2013, 2, 28),
    DAY_MS = 86400000,
    n = Math.floor( (curent.getTime() - interval.getTime() ) / DAY_MS ) 
    dates = [];
    for (var i = 0; i < n; i++) {
        dates.push(new Date(interval.getTime() - (i * DAY_MS)));
    }
    return dates;
}
console.log(test1());


Чет не в курю почему var curent = new Date() указывав так не верно считает разницу во времени.
а если задать так    var curent = new Date(2013, 2, 18) верно.

В общем как получить текущею дату?

Ответы (3)
ava
CruorVult | 18.02.2013, 13:18 #
Потому что


new Date(2013, 2, 18)


формирует дату текущую, но время нулевое (0 часов 0 минут 0 секунд), а


new Date()


получает еще и текущее время.

Вот и разница.
ava
Aliance | 18.02.2013, 13:25 #
Ну начнем с того, что у тебя порядок вычитания дат не правильный, ты получаешь минусовое значение, и цикл просто не выполняется.

А так, в общем-то, все правильно, без аргументов получается текущая дата. Разница бывает из-за наличия/отсутствия времени (миллисекунды, секунды, минуты и часы).
Только не забудь еще, что месяцы начинаются не с единицы, а с нуля ( 0 - январь).

И еще в конце 5ой строчки у тебя пропущена запятая.
ava
Sanchezzz | 18.02.2013, 14:07 #
Как я давно не работал с датами в JS.
Спасибо большое помогли
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить