Массив дат в javascript
У меня есть 2 даты: начало и конец
Я создал массив дат, используя эти даты.
Дата начала = 11/1/2018 дата окончания = 4/31/2019
массив = [11/1/2018,12/1/2018,1/1/2019,2/1/2019....4/1/2019]
Проблема в том, что он создает массив дат правильно, если это не начало или конец месяца.
Таким образом, если моя начальная дата-11/1/2018, а конечная-04/31/2019, то массив печатает неправильные даты, иначе он работает нормально.
Не знаю, что я здесь делаю не так. Любая помощь будет оценена по достоинству.
Что я уже пробовал:
function getDateArray (start, end) { var arr = []; var startDate = new Date(start); console.log(startDate); var endDate = new Date(end); console.log(endDate); var ddlPayType = document.getElementById("payType"); var selectedPayType = ddlPayType.options[ddlPayType.selectedIndex].value; var selectedFrequency; if (document.getElementById("ddFrequency")) selectedFrequency = document.getElementById("ddFrequency").value; if (selectedPayType) { if (selectedPayType === "A") { endDate.setMonth(endDate.getMonth()); } else if (selectedPayType === "B") { endDate.setMonth(endDate.getMonth() + 1); } } while (startDate <= endDate) { arr.push(new Date(startDate)); startDate.setDate(endDate.getDate()+1); startDate.setMonth(startDate.getMonth() +1); } return arr; }
Patrice T
Определите "неправильные даты", покажите пример
Patrice T
Кстати, определите также, что означает этот список.
Bryian Tan
Кстати, 31.04.2019 не является действительной датой.
Patrice T
"Дата начала = 11/1/2018 дата окончания = 4/31/2018"
Кстати, я боюсь, что дата окончания будет раньше даты начала.
F-ES Sitecore
4/31/2018 - это не действует для меня в Великобритании, это не действует для людей в Японии, но это действительно для людей в Америке. Откуда ваш javascript знает, что вы американец?