date_validation.js

function validateDate(date, fieldName, afterToday){ if(date.length < 10){ alert(fieldName + ': tamanho inválido.'); return false; } if(date.charAt(2) != '/' || date.charAt(5) != '/'){ alert(fieldName + ': formatação inválida.'); return false; } var year = parseInt(date.substr(6, 4)); var month = parseInt(date.substr(3, 2)); var day = parseInt(date.substr(0, 2)); if(!year){ alert(fieldName + ': ano inválido - ' + date.substr(6, 4)); return false; } if(!month || month < 1 || month > 12){ alert(fieldName + ': mês inválido - ' + date.substr(3, 2)); return false; } if(!day || day < 1 || day > 31){ alert(fieldName + ': dia inválido - ' + date.substr(0, 2)); return false; } var major = new Array(1, 3, 5, 7, 8, 10, 12); var minor = new Array(4, 6, 9, 11); if(major.indexOf(month) != -1 && day > 31){ alert(fieldName + ': para meses com 31 dias, o maior dia possível é 31.'); return false; }else if(minor.indexOf(month) != -1 && day > 30){ alert(fieldName + ': para meses com 30 dias, o maior dia possível é 30.'); return false; }else if(month == 2){ var leapyear = false; if((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0){ leapyear = true; } if(leapyear && day > 29){ alert(fieldName + ': para meses com até 29 dias, o maior dia possível é 29.'); return false; }else if(!leapyear && day > 28){ alert(fieldName + ': para meses com até 28 dias, o maior dia possível é 28.'); return false; } } date = new Date( year, month - 1, day, 0, 0, 0 ); var now = new Date(); if (afterToday) { if(date < now){ alert(fieldName + ' não pode ser anterior a hoje.'); return false; } } return true; }
Date validation

Be the first to comment

You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.