# http://php.net/manual/en/function.checkdate.php function validateDate($date, $format = 'Y-m-d H:i:s') { $d = DateTime::createFromFormat($format, $date); return $d && $d->format($format) == $date; } var_dump(validateDate('2012-02-28 12:12:12')); # true var_dump(validateDate('2012-02-30 12:12:12')); # false var_dump(validateDate('2012-02-28', 'Y-m-d')); # true var_dump(validateDate('28/02/2012', 'd/m/Y')); # true var_dump(validateDate('30/02/2012', 'd/m/Y')); # false var_dump(validateDate('14:50', 'H:i')); # true var_dump(validateDate('14:77', 'H:i')); # false var_dump(validateDate(14, 'H')); # true var_dump(validateDate('14', 'H')); # true