In PHP possiamo verificare la validità dei componenti di una data.
La soluzione è la seguente:
function verify_date($month, $day, $year) {
$month = trim($month);
$day = trim($day);
$year = trim($year);
$valid = true;
if (empty($month) || empty($day) || empty($year)) {
$valid = false;
} elseif (!is_numeric($month) || !is_numeric($day) || !is_numeric($year)) {
$valid = false;
} elseif (($month < 1 || $month > 12) || ($day < 1 || $day > 31) || ($year < 1000 || $year > 9999)) {
$valid = false;
} elseif (!checkdate($month,$day,$year)) {
$valid = false;
}
return $valid;
}