Validating a Date
The function checkdate( ) returns true if a given month, day, and year form a valid Gregorian date:
boolean checkdate(integer month, integer day, integer year)
This function isn't based on a timestamp and so can accept a larger range of dates: basically any dates in the years 1 to 32767. It automatically accounts for leap years.
// Works for a wide range of dates $valid = checkdate(1, 1, 1066); // true $valid = checkdate(1, 1, 2929); // true // Correctly identify bad dates $valid = checkdate(13, 1, 1996); // false $valid = checkdate(4, 31, 2001); // false // Correctly handles leap years $valid = checkdate(2, 29, 1996); // true $valid = checkdate(2, 29, 2001); // false