Dùng regular expression:
Code cho Javascript. Tùy chỉnh error nhé:
<script>
function check_valid_date(datevalue)
{
var pattern = new RegExp(/^[0-3][0-9]\/(0|1)[0-9]\/(19|20)[0-9][0-9]$/);
if(datevalue.match(pattern))
{
var date_array =datevalue.split('/');
var day = date_array[0];
// Attention! Javascript consider months in the range 0 - 11
var month = date_array[1] - 1;
var year = date_array[2];
source_date = new Date(year,month,day);
if(year != source_date.getFullYear())
{
alert('Year is not valid!');
return false;
}
if(month != source_date.getMonth())
{
alert('Month is not valid!');
return false;
}
if(day != source_date.getDate())
{
alert('Day is not valid!');
return false;
}
}
else
{
alert('Date format is not valid!');
return false;
}
return true;
}
</script>
Thêm PHP, nếu user tắt Javascript:
$date=$_POST[...]; // get variable
if(!preg_match("/^[0-3]\d\/[0-1]\d\/(19|20)\d{2}$/",$date))
{
//error not in valid format
}
list($day,$month,$year)=explode("/",$date);
if(

ckdate($month,$day,$year))
{
//not valid date
}