JavaScript Обнаружение действительных дат

Возможный дубликат:
Обнаружение экземпляра Date «недопустимой даты» в JavaScript

Я использовал следующее, чтобы определить допустимую дату:

var text = $('#Date').val();
var date = Date.parse(text);

if (isNaN(date)) {
      // Invalid date
}

Но обнаружено, что Date.parse считает, что следующие допустимые даты (мм / дд / гггг)

  • 30.02.2011
  • 31.11.2011

Любой другой способ обнаруживать недопустимые даты, когда количество дней превышает общее количество дней в месяце?

ОБНОВЛЕНИЕ: Еще более серьезная проблема заключается в том, что подключаемый модуль проверки jQuery также не определяет это как недопустимую дату!

РЕШЕНИЕ:

На основе комментариев @ Guffa я создал следующую функцию для проверки дат:

function validDate(text) {

    var date = Date.parse(text);

    if (isNaN(date)) {
        return false;
    }

    var comp = text.split('/');

    if (comp.length !== 3) {
        return false;
    }

    var m = parseInt(comp[0], 10);
    var d = parseInt(comp[1], 10);
    var y = parseInt(comp[2], 10);
    var date = new Date(y, m - 1, d);
    return (date.getFullYear() == y && date.getMonth() + 1 == m && date.getDate() == d);
}
37
задан Community 23 May 2017 в 11:55
поделиться