Possibile duplicato:
Rilevazione di una data “data non valida” istanza in JavaScript
Stavo usando quanto segue per rilevare una data valida:
var text = $('#Date').val(); var date = Date.parse(text); if (isNaN(date)) { // Invalid date }
Ma ho trovato che Date.parse pensa che le seguenti date siano valide (mm / gg / aaaa)
Qualsiasi altro modo per rilevare date non valide quando il numero di giorni supera il numero totale di giorni nel mese?
AGGIORNAMENTO: Un problema ancora più grande è che il plugin di convalida jQuery non lo rileva come data non valida!
SOLUZIONE:
Sulla base dei commenti di @ Guffa, ho creato la seguente funzione per convalidare le date:
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); }