使用strtotime()函數判斷:
/** * 校验日期格式是否正确 * * @param string $date 日期 * @param string $formats 需要检验的格式数组 * @return boolean */ function checkDateIsValid($date, $formats = array("Y-m-d", "Y/m/d")) { $unixTime = strtotime($date); if (!$unixTime) { //strtotime转换不对,日期格式显然不对。 return false; } //校验日期的有效性,只要满足其中一个格式就OK foreach ($formats as $format) { if (date($format, $unixTime) == $date) { return true; } } return false; }
有一點要注意:如果需要的日期格式比較特別,即使是正確的格式,strtotime函數也無法解析的,則不能使用這個函數,不過這種情況應當非常少見了。
範例:
var_dump(checkDateIsValid("2013-09-10")); //输出true var_dump(checkDateIsValid("2013-09-ha")); //输出false var_dump(checkDateIsValid("2012-02-29")); //输出true var_dump(checkDateIsValid("2013-02-29")); //输出false
推薦教學:PHP影片教學
以上是php判斷日期是否合法的詳細內容。更多資訊請關注PHP中文網其他相關文章!