Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Интрвал времени JS в массив


Автор: Sanchezzz 18.2.2013, 12: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) верно. 

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


Автор: CruorVult 18.2.2013, 13:18
Потому что 

Код

new Date(2013, 2, 18)


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

Код

new Date()


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

Вот и разница.

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

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

И еще в конце 5ой строчки у тебя пропущена запятая.

Автор: Sanchezzz 18.2.2013, 14:07
Как я давно не работал с датами в JS.
Спасибо большое помогли

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)