php使用strtotime和date函数判断日期是否有效代码分享

2015-01-24信息快讯网

php使用strtotime和date函数进行检验判断日期是否有效代码分享,大家参考使用吧

咋一想,判断日期是否有效应该是蛮简单的一个功能,但是细想起来还是有点麻烦的,因为既要检验格式,又要检验有效性。例如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

浅析application/x-www-form-urlencoded和multipart/form-data的区别
ThinkPHP3.1新特性之Action参数绑定
PHP中strlen()和mb_strlen()的区别浅析
ThinkPHP CURD方法之data方法详解
Thinkphp中Create方法深入探究
php smarty truncate UTF8乱码问题解决办法
Codeigniter中禁止A Database Error Occurred错误提示的方法
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
PHP资源管理框架Assetic简介
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
利用谷歌 Translate API制作自己的翻译脚本
PHP函数strip_tags的一个bug浅析
PHP中date与gmdate的区别及默认时区设置
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
yii框架builder、update、delete使用方法
php将字符串转化成date存入数据库的两种方式
easyui的tabs update正确用法分享
PHP下获取上个月、下个月、本月的日期(strtotime,date)
php使用filter过滤器验证邮箱 ipv6地址 url验证
php制作unicode解码工具(unicode编码转换器)代码分享
phpstrom使用xdebug配置方法
PHP函数microtime()用法与说明
php strnatcmp()函数的用法总结
PHP PDOStatement:bindParam插入数据错误问题分析
PHP反射类ReflectionClass和ReflectionObject的使用方法
session在php5.3中的变化 session_is_registered() is deprecated in
PHP利用str_replace防注入的方法
PHP时间戳 strtotime()使用方法和技巧
简单实用的.net DataTable导出Execl
php float不四舍五入截取浮点型字符串方法总结
PHP 使用pcntl和libevent 实现Timer功能
zend optimizer在wamp的基础上安装图文教程
关于php程序报date()警告的处理(date_default_timezone_set)
PHP字符串长度计算 - strlen()函数使用介绍
PHP中time(),date(),mktime()区别介绍
PHP函数之日期时间函数date()使用详解
php中用date函数获取当前时间有误的解决办法
©2014-2024 dbsqp.com