使用php实现从身份证中提取生日


Posted in PHP onMay 09, 2016

用php从身份证中提取生日,包括15位和18位身份证

function getIDCardInfo($IDCard,$format=1){ 
 $result['error']=0;//0:未知错误,1:身份证格式错误,2:无错误 
 $result['flag']='';//0标示成年,1标示未成年 
 $result['tdate']='';//生日,格式如:2012-11-15 
 if(!preg_match("/^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/",$IDCard)){ 
  $result['error']=1; 
  return $result; 
 }else{ 
  if(strlen($IDCard)==18)
  { 
   $tyear=intval(substr($IDCard,6,4)); 
   $tmonth=intval(substr($IDCard,10,2)); 
   $tday=intval(substr($IDCard,12,2)); 
  }
  elseif(strlen($IDCard)==15)
  { 
   $tyear=intval("19".substr($IDCard,6,2)); 
   $tmonth=intval(substr($IDCard,8,2)); 
   $tday=intval(substr($IDCard,10,2)); 
  }
   
  if($tyear>date("Y")||$tyear<(date("Y")-100))
  { 
    $flag=0; 
   }
   elseif($tmonth<0||$tmonth>12)
   { 
    $flag=0; 
   }
   elseif($tday<0||$tday>31)
   { 
    $flag=0; 
   }else
   { 
    if($format)
    {
     $tdate=$tyear."-".$tmonth."-".$tday; 
    }
    else
    {
     $tdate=$tmonth."-".$tday; 
    }
     
    if((time()-mktime(0,0,0,$tmonth,$tday,$tyear))>18*365*24*60*60)
    { 
     $flag=0; 
    }
    else
    { 
     $flag=1; 
    } 
   }  
 } 
 $result['error']=2;//0:未知错误,1:身份证格式错误,2:无错误 
 $result['isAdult']=$flag;//0标示成年,1标示未成年 
 $result['birthday']=$tdate;//生日日期 
 return $result; 
}
PHP 相关文章推荐
改变Apache端口等配置修改方法
Jun 05 PHP
php中批量修改文件后缀名的函数代码
Oct 23 PHP
php查找指定目录下指定大小文件的方法
Nov 28 PHP
PHP获取当前完整URL地址的函数
Dec 21 PHP
PHP使用CURL模拟登录的方法
Jul 08 PHP
详解php中反射的应用
Mar 15 PHP
PHP接收App端发送文件流的方法
Sep 23 PHP
PHP实现简单ajax Loading加载功能示例
Dec 28 PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
php下的原生ajax请求用法实例分析
Feb 28 PHP
php+mysql实现的无限分类方法类定义与使用示例
May 27 PHP
PHP使用内置函数生成图片的方法详解
May 09 #PHP
php时间计算相关问题小结
May 09 #PHP
php数据访问之查询关键字
May 09 #PHP
php简单实现短网址(短链)还原的方法(测试可用)
May 09 #PHP
php数据访问之增删改查操作
May 09 #PHP
php简单实现批量上传图片的方法
May 09 #PHP
php简单备份与还原MySql的方法
May 09 #PHP
You might like
SMARTY学习手记
2007/01/04 PHP
php 抽象类的简单应用
2011/09/06 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
php给每个段落添加空格的方法
2015/03/20 PHP
简单谈谈favicon
2015/06/10 PHP
laravel创建类似ThinPHP中functions.php的全局函数
2016/11/26 PHP
js 创建书签小工具之理论
2011/02/25 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
2015/06/08 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
浅析使用BootStrap TreeView插件实现灵活配置快递模板
2016/11/28 Javascript
JS绘制微信小程序画布时钟
2016/12/24 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
jQuery插件HighCharts实现气泡图效果示例【附demo源码】
2017/03/13 Javascript
原生JS实现隐藏显示图片 JS实现点击切换图片效果
2021/01/27 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
JS解析后台返回的JSON格式数据实例
2018/08/06 Javascript
通过vue-cli3构建一个SSR应用程序的方法
2018/09/13 Javascript
创建Vue项目以及引入Iview的方法示例
2018/12/03 Javascript
puppeteer库入门初探
2019/01/09 Javascript
vue与bootstrap实现简单用户信息添加删除功能
2019/02/15 Javascript
vue和better-scroll实现列表左右联动效果详解
2019/04/29 Javascript
小程序中的箭头函数的具体使用
2020/06/19 Javascript
js+canvas实现图片格式webp/png/jpeg在线转换
2020/08/22 Javascript
跟老齐学Python之编写类之一创建实例
2014/10/11 Python
对pandas数据判断是否为NaN值的方法详解
2018/11/06 Python
django框架模板语言使用方法详解
2019/07/18 Python
Python3 批量扫描端口的例子
2019/07/25 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
从0到1使用python开发一个半自动答题小程序的实现
2020/05/12 Python
python自动化测试三部曲之request+django实现接口测试
2020/10/07 Python
5分钟快速掌握Python定时任务框架的实现
2021/01/26 Python
web字体加载方案优化小结
2019/11/29 HTML / CSS
大二自我鉴定范文
2013/10/05 职场文书
大学班级干部的自我评价分享
2014/02/10 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
个人对照检查材料思想汇报(四风问题)
2014/09/25 职场文书