日期格式php用点隔离,PHP学习之校验日期格式合法性?(使用strtotime()和date())...
詳細(xì)內(nèi)容
本篇文章主要講述了用PHP來(lái)校驗(yàn)日期格式是否合法,具有一定參考價(jià)值,有需要的朋友可以了解一下,希望能幫到你。
在后端開(kāi)發(fā)中,我們常常需要校驗(yàn)前端傳入?yún)?shù)的合法性,如果是校驗(yàn)日期參數(shù),我們可以通過(guò)下面的方法來(lái)校驗(yàn):/**
* 校驗(yàn)日期格式是否合法
* @param string $date
* @param array $formats
* @return bool
*/
function isDateValid($date, $formats = array('Y-m-d', 'Y/m/d')) {
$unixTime = strtotime($date);
if(!$unixTime) { //無(wú)法用strtotime轉(zhuǎn)換,說(shuō)明日期格式非法
return false;
}
//校驗(yàn)日期合法性,只要滿足其中一個(gè)格式就可以
foreach ($formats as $format) {
if(date($format, $unixTime) == $date) {
return true;
}
}
return false;
}
說(shuō)明:
為什么只用strtotime()函數(shù)是無(wú)法準(zhǔn)確校驗(yàn)時(shí)間呢?
因?yàn)橹灰袷秸_的日期用strtotime()都能將其轉(zhuǎn)成時(shí)間戳,比如2018-02-31這個(gè)日期,其實(shí)邏輯上來(lái)說(shuō)這個(gè)日期是不存在的,但是在strtotime()函數(shù)依然能將其成功轉(zhuǎn)成時(shí)間戳,所以我們需要將時(shí)間戳用date()轉(zhuǎn)成標(biāo)準(zhǔn)格式,然后和傳入的日期進(jìn)行比對(duì),如果不相等,說(shuō)明這個(gè)傳入的日期也是不合法的。
PHP本身也有校驗(yàn)時(shí)間的函數(shù)checkdate(),這個(gè)函數(shù)需要三個(gè)參數(shù),分別是月、日、年。比如上面的日期可以這樣調(diào)用checkdate函數(shù)檢測(cè)if(checkdate(2, 31, 2018)) {
echo '日期格式正確';
} else {
echo '日期格式不正確';
}
相關(guān)教程:PHP視頻教程
總結(jié)
以上是生活随笔為你收集整理的日期格式php用点隔离,PHP学习之校验日期格式合法性?(使用strtotime()和date())...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php print_r this,PHP
- 下一篇: php api命名历史,历史上的今天,p