我有一段代碼不起作用。但是,當我使它成爲一個函數時,它總是返回false。顧名思義,此功能的目的是檢查日期是否有效。有人可以告訴我代碼有什麼問題嗎?如何在此日期驗證碼中創建一個php函數?
function is_valid_date($a) {
//date format Y-m-d H:i:s
if(preg_match('/^((19|20)\\d\\d)-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01]) ([01]\d|2[0123]):([0-5]\d):([0-5]\d)$/', $a)){
list($_date , $_time) = explode(' ',$a);
list ($year,$month,$day) = explode("-",$_date);
list($hour,$minute,$second) = explode(":",$_time);
if ($day == "31" && ($month == "4" || $month == "6" || $month == "9" || $month == "11" || $month == "04" || $month == "06" || $month == "09")) {
return false;
} elseif ($month == "2" || $month == "02") {
if($year % 4==0){
if($day == "30" || $day == "31"){
return false;
} else {
return true;
}
}else{
if($day == "29" || $day == "30" || $day == "31"){
return false;
} else {
return true;
}
}
}
}else{
return false;
}
}
當我嘗試
if (is_valid_date("2012-12-02 15:30:00")) { echo "valid date";}
沒有什麼是打印。
我看你的函數可以返回TRUE;只有'否則,如果一個月= 2 ' – Andrew
爲什麼在PHP已經內置所有內置的時候編寫自己的日期驗證例程? – Spudley