為什么只用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)行比對(duì),如果不相等,說明這個(gè)傳入的日期也是不合法的。
PHP本身也有校驗(yàn)時(shí)間的函數(shù)checkdate(),這個(gè)函數(shù)需要三個(gè)參數(shù),分別是月、日、年。比如上面的日期可以這樣調(diào)用checkdate函數(shù)檢測(cè)
if(checkdate(2, 31, 2018)) {
echo '日期格式正確';
} else {
echo '日期格式不正確';
}