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

 更新时间:2013年12月25日 09:54:43   作者:  
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

相关文章

  • 简单的自定义php模板引擎

    简单的自定义php模板引擎

    这篇文章主要为大家详细介绍了简单的自定义php模板引擎,模板引擎的原理是什么,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • laravel添加前台跳转成功页面示例

    laravel添加前台跳转成功页面示例

    今天小编就为大家分享一篇laravel添加前台跳转成功页面示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • PHP 中TP5 Request 请求对象的实例详解

    PHP 中TP5 Request 请求对象的实例详解

    这篇文章主要介绍了PHP 中TP5 Request 请求对象的实例详解的相关资料,这里提供实现代码帮助大家理解这部分内容,需要的朋友可以参考下
    2017-07-07
  • php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)

    php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)

    下面小编就为大家带来一篇php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • php 在线导入mysql大数据程序

    php 在线导入mysql大数据程序

    我想很多人经常会用phpmyadmin进行数据的导入与导出,但是在很多使用虚拟主机的情况下,导出没什么问题但是导入就存在很大的问题了,我想这里我也不多说了站长都会知道了.好了我们现在来看看php把mysql数据库里面的数据导入程序吧.
    2015-06-06
  • PHP中把有符号整型转换为无符号整型方法

    PHP中把有符号整型转换为无符号整型方法

    这篇文章主要介绍了PHP中把有符号整型转换为无符号整型方法,转换的方法很简单,本文直接给出转换方法,需要的朋友可以参考下
    2015-05-05
  • thinkPHP自动验证机制详解

    thinkPHP自动验证机制详解

    这篇文章主要介绍了thinkPHP自动验证机制,结合实例形式分析了thinkPHP自动验证机制的格式、原理与具体操作技巧,需要的朋友可以参考下
    2016-12-12
  • php 人员权限管理(RBAC)实例(推荐)

    php 人员权限管理(RBAC)实例(推荐)

    下面小编就为大家带来一篇php 人员权限管理(RBAC)实例(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • php语言中使用json的技巧及json的实现代码详解

    php语言中使用json的技巧及json的实现代码详解

    json是一种比较流行的数据交换格式之一,各大API网站均支持json。通过本篇文章给大家介绍php语言中使用json技巧以及php语言中json的实现,对php语言中使用json技巧及json的实现代码详解感兴趣的朋友一起来本文学习学习吧
    2015-10-10
  • PHP笔记之:基于面向对象设计的详解

    PHP笔记之:基于面向对象设计的详解

    本篇文章对面向对象设计进行了详细的分析介绍,需要的朋友参考下
    2013-05-05

最新评论