国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php使用strtotime和date函數判斷日期是否有效代碼分享

2024-05-04 23:20:13
字體:
來源:轉載
供稿:網友

咋一想,判斷日期是否有效應該是蠻簡單的一個功能,但是細想起來還是有點麻煩的,因為既要檢驗格式,又要檢驗有效性。例如2013-02-29,雖然格式正確,但是日期無效;而2012-02-29格式正確,也有效。

一種方法可以使用正則,但是正則其實理解起來蠻麻煩的,而且使用正則在檢驗有效性方面也不太好。這里提供一個方法,主要是使用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;
}

代碼注釋里說明的比較詳細了,就不再敘說了。有一點要注意下:如果需要的日期格式比較特別,即便是正確的格式,strtotime函數也無法解析的,則不能使用這個函數,不過這種情況應當非常少見了。

一些例子:

復制代碼 代碼如下:


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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 潼南县| 仁怀市| 建瓯市| 淳安县| 衡阳市| 乌拉特后旗| 肇庆市| 金寨县| 凭祥市| 龙胜| 墨脱县| 山东| 汽车| 扶风县| 阿坝县| 乐业县| 日土县| 祁东县| 富民县| 昌吉市| 孝感市| 太白县| 乐山市| 且末县| 甘孜县| 镇安县| 前郭尔| 公主岭市| 桂阳县| 竹山县| 黑河市| 辽宁省| 沙湾县| 河西区| 微山县| 龙陵县| 刚察县| 达尔| 双桥区| 巨野县| 井冈山市|