本篇文章次要讲述了用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开发自学 日期校验
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!