2016-12-23 2 views
0

У меня есть неизвестный диапазон дней (основанный на двух входах из календаря), например: он может начинаться с 5 января 2009 года и заканчиваться с 19 по 19 ноября 2015 года. Это дает мне около 2 509 дней.Найдите определенную дату в прошлом году в пределах диапазона времени

Мне нужно найти фиксированную дату (16 декабря) в течение последнего года этого диапазона, чтобы сделать извлечение в днях и найти, сколько дней с последнего декабря 16 до даты окончания ввода. Heres a Diagram

У меня есть две даты, преобразованные в отдельные строки, год, месяц и день, также у меня есть объект.

+0

Дубликат [* Как получить количество дней между двумя датами в JavaScript? *] (Http://stackoverflow.com/questions/542938/how-do-i-get-the-number-of- дни-между-два-дат-в-JavaScript). – RobG

+0

Вы заглянули в Moment.js (http://momentjs.com)? Его довольно большая библиотека для работы с датами, возможно, что-то там вы можете использовать. – jmona789

ответ

1

Будет ли это работать?

let endDate = new Date('Feb-23-2017'); 

for(let i = 0; i < 365; i++) { 
    endDate.setDate(endDate.getDate() - 1); 
    if(endDate.getDate() === 16 && endDate.getMonth() === 11) { 
    alert(i + 1); 
    break; 
    } 
} 

Поскольку вы не заботитесь о дате начала. Если диапазон меньше, чем год, а целевой день (dec 16) не находится в этом диапазоне. Вы можете добавить чеки для этого.

Вот plnkr, который демонстрирует это.

+0

Я изменил дату окончания так, чтобы он мог быть совместим с моим кодом, не получить всю логику этого, но он работал, не совсем точен несколько раз, я думаю, это високосный год. Большое спасибо! –

Смежные вопросы