您好,登錄后才能下訂單哦!
小編給大家分享一下PHP中使用strtotime()和date()的案例,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
在后端開發(fā)中,我們常常需要校驗(yàn)前端傳入?yún)?shù)的合法性,如果是校驗(yàn)日期參數(shù),我們可以通過下面的方法來校驗(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) { //無法用strtotime轉(zhuǎn)換,說明日期格式非法 return false; } //校驗(yàn)日期合法性,只要滿足其中一個(gè)格式就可以 foreach ($formats as $format) { if(date($format, $unixTime) == $date) { return true; } } return false; }
說明:
為什么只用strtotime()函數(shù)是無法準(zhǔn)確校驗(yàn)時(shí)間呢?
因?yàn)橹灰袷秸_的日期用strtotime()都能將其轉(zhuǎn)成時(shí)間戳,比如2018-02-31這個(gè)日期,其實(shí)邏輯上來說這個(gè)日期是不存在的,但是在strtotime()函數(shù)依然能將其成功轉(zhuǎn)成時(shí)間戳,所以我們需要將時(shí)間戳用date()轉(zhuǎn)成標(biāo)準(zhǔn)格式,然后和傳入的日期進(jìn)行比對,如果不相等,說明這個(gè)傳入的日期也是不合法的。
PHP本身也有校驗(yàn)時(shí)間的函數(shù)checkdate()
,這個(gè)函數(shù)需要三個(gè)參數(shù),分別是月、日、年。比如上面的日期可以這樣調(diào)用checkdate函數(shù)檢測
if(checkdate(2, 31, 2018)) { echo '日期格式正確'; } else { echo '日期格式不正確'; }
看完了這篇文章,相信你對PHP中使用strtotime()和date()的案例有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。