php判斷日期是否有效的思考
2015/09/21 10:17
瀏覽1,438
迴響0
推薦0
引用0
一種方法可以使用正則,但是正則其實理解起來蠻麻煩的,而且使用正則在檢驗有效性方面也不太好。這裏提供一個方法,主要是使用strtotime和date函數進行檢驗。直接上函數:
/**
* 校驗日期格式是否正確
*
* @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;
}
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
/**
* 校驗日期格式是否正確
*
* @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;
}
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
你可能會有興趣的文章:
限會員,要發表迴響,請先登入


