使用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 相关文章推荐
MySQL相关说明
Jan 15 PHP
php-accelerator网站加速PHP缓冲的方法
Jul 30 PHP
PHP中利用substr_replace将指定两位置之间的字符替换为*号
Jan 27 PHP
分享8个最佳的代码片段在线测试网站
Jun 29 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
Dec 17 PHP
php判断并删除空目录及空子目录的方法
Feb 11 PHP
PHP的Yii框架入门使用教程
Feb 15 PHP
利用PHP将图片转换成base64编码的实现方法
Sep 13 PHP
PHP接口并发测试的方法(推荐)
Dec 15 PHP
yii2实现分页,带搜索的分页功能示例
Jan 07 PHP
PHP实时统计中文字数和区别
Feb 28 PHP
如何通过PHP实现Des加密算法代码实例
May 09 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
SONY ICF-SW55的电路分析
2021/03/02 无线电
php页面缓存ob系列函数介绍
2012/10/18 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
PHP把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
PHP面向对象程序设计OOP继承用法入门示例
2016/12/27 PHP
php7 安装yar 生成docker镜像
2017/05/09 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
laravel-admin 实现在指定的相册下添加照片
2019/10/21 PHP
捕获键盘事件(且兼容各浏览器)
2013/07/03 Javascript
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
javascript 使用for循环时该注意的问题-附问题总结
2015/08/19 Javascript
深入理解jQuery之防止冒泡事件
2016/05/24 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
vue实现下载文件流完整前后端代码
2020/11/17 Vue.js
[02:56]DOTA2上海特锦赛小组赛解说FreeAgain采访花絮
2016/02/27 DOTA
[00:09]DOTA2全国高校联赛 精彩活动引爆全场
2018/05/30 DOTA
python获取指定网页上所有超链接的方法
2015/04/04 Python
Python中的XML库4Suite Server的介绍
2015/04/14 Python
Python实现字符串格式化的方法小结
2017/02/20 Python
python实现12306火车票查询器
2017/04/20 Python
Python开发的实用计算器完整实例
2017/05/10 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
详解用python写一个抽奖程序
2019/05/10 Python
pyqt5 使用label控件实时显示时间的实例
2019/06/14 Python
python正则表达式匹配IP代码实例
2019/12/28 Python
python如何求数组连续最大和的示例代码
2020/02/04 Python
tensorflow 大于某个值为1,小于为0的实例
2020/06/30 Python
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
Linux的文件类型
2016/07/05 面试题
党员干部承诺书
2014/03/25 职场文书
个人课题方案
2014/05/08 职场文书
优秀小学生事迹材料
2014/12/26 职场文书
婚前协议书怎么写,才具有法律效力呢 ?
2019/06/28 职场文书
React Hook用法示例详解(6个常见hook)
2021/04/28 Javascript