PHP学习之校验日期格式合法性?(使用strtotime()和date())
发布:smiling 来源: PHP粉丝网 添加日期:2020-03-31 18:14:56 浏览: 评论: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 '日期格式不正确';
- }
Tags: strtotime date()
相关文章
- ·PHP Warning: strtotime()错误解决办法(2013-12-06)
- ·PHP strtotime计算上一个月的今天问题解决(2013-12-08)
- ·php 简单strtotime()时间操作函数(2014-01-15)
- ·php用strtotime或mktime指定日期数据:本周,上周,本月,上月,本季度(2014-02-18)
- ·php用strtotime加减运算得到指定日期的方法(2014-02-25)
- ·PHP时间戳与日期之间转换(2014-03-10)
- ·php中strtotime给个时间返回该时间所在的星期一(2014-03-12)
- ·PHP中时间戳与日期之间的转换程序(2014-03-14)
- ·php strtotime()计算今天与指定日期之天数(2014-05-23)
- ·PHP时间戳函数 strtotime()使用技巧(2014-09-13)
- ·php strtotime()函数时间日期转换(2014-09-18)
- ·使用strtotime和mktime时参数为0时返回1999-11-30的时间戳问题(2014-09-21)
- ·php strtotime()函数日期转换应用实例(2014-09-21)
- ·php中date和strtotime函数输出指定日期(2014-09-22)
- ·PHP转Unix时间戳strtotime函数源码分析及使用方法(2015-04-15)
- ·PHP下获取上个月、下个月、本月的日期(strtotime,date)(2020-09-07)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)