Я пытаюсь проверить, является ли дата действительной в том смысле, что если кто-то вводит 2/30/2011, то это должно быть неверно.
2/30/2011
Как я могу сделать это с любой датой?
Моя функция возвращает true, если допустимая дата, в противном случае возвращает false: D
function isDate (day, month, year){ if(day == 0 ){ return false; } switch(month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: if(day > 31) return false; return true; case 2: if (year % 4 == 0) if(day > 29){ return false; } else{ return true; } if(day > 28){ return false; } return true; case 4: case 6: case 9: case 11: if(day > 30){ return false; } return true; default: return false; } } console.log(isDate(30, 5, 2017)); console.log(isDate(29, 2, 2016)); console.log(isDate(29, 2, 2015));
function isValidDate(year, month, day) { var d = new Date(year, month - 1, day, 0, 0, 0, 0); return (!isNaN(d) && (d.getDate() == day && d.getMonth() + 1 == month && d.getYear() == year)); }