PHP学习之校验日期格式合法性?(使用strtotime()和date())-php教程

资源魔 30 0
本篇文章次要讲述了用PHP来校验日期格局能否非法,具备肯定参考代价,有需求的冤家能够理解一下,心愿能帮到你。

正在后端开发中,咱们经常需求校验前端传入参数的非法性,假如是校验日期参数,咱们能够经过上面的办法来校验:

/**
 * 校验日期格局能否非法
 * @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转换,阐明日期格局合法
        return false;
    }

    //校验日期非法性,只需餍足此中一个格局就能够
    foreach ($formats as $format) {
        if(date($format, $unixTime) == $date) {
            return true;
        }
    }

    return false;
}

阐明:
为何只用strtotime()函数是无奈精确校验工夫呢?
由于只需格局正确的日期用strtotime()都能将其转成工夫戳,比方2018-02-31这个日期,其实逻辑下去说这个日期是没有存正在的,然而正在strtotime()函数仍然能将其胜利转成工夫戳,以是咱们需求将工夫戳用date()转成规范格局,而后以及传入的日期进行比对,假如没有相等,阐明这个传入的日期也是没有非法的。
PHP自身也有校验工夫的函数checkdate(),这个函数需求三个参数,辨别是月、日、年。比方下面的日期能够这样挪用checkdate函数检测

if(checkdate(2, 31, 2018)) {
    echo '日期格局正确';
} else {
    echo '日期格局没有正确';
}

相干教程:PHP视频教程

以上就是PHP学习之校验日期格局非法性?(应用strtotime()以及date())的具体内容,更多请存眷资源魔其它相干文章!

标签: php php开发教程 php开发资料 php开发自学 日期校验

抱歉,评论功能暂时关闭!