溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP中使用strtotime()和date()的案例

發(fā)布時(shí)間:2020-10-19 16:12:03 來源:億速云 閱讀:139 作者:小新 欄目:編程語言

小編給大家分享一下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è)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(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)容。

AI