使用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 相关文章推荐
浅谈Windows下 PHP4.0与oracle 8的连接设置
Oct 09 PHP
PHP的一个基础知识 表单提交
Jul 04 PHP
PHP字符串中特殊符号的过滤方法介绍
Feb 18 PHP
php绘图之在图片上写中文和英文的方法
Jan 24 PHP
php显示指定目录下子目录的方法
Mar 20 PHP
Symfony2实现在doctrine中内置数据的方法
Feb 05 PHP
php实现图片上传并进行替换操作
Mar 15 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
Jul 03 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
Jul 10 PHP
php生成二维码不保存服务器还有下载功能的实现代码
Aug 09 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
Oct 11 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
Feb 18 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
德生PL660的电路分析和打磨
2021/03/02 无线电
如何在PHP中使用Oracle数据库(5)
2006/10/09 PHP
php遍历目录输出目录及其下的所有文件示例
2014/01/27 PHP
PHP FileSystem 文件系统常用api整理总结
2019/07/12 PHP
PHP下载文件函数与用法示例
2019/09/27 PHP
网页和浏览器兼容性问题汇总(draft1)
2009/06/01 Javascript
用jquery实现点击栏目背景色改变
2012/12/10 Javascript
关闭ie窗口清除Session的解决方法
2014/01/10 Javascript
打造自己的jQuery插件入门教程
2016/09/23 Javascript
微信小程序 wx:key详细介绍
2016/10/28 Javascript
H5移动端图片压缩上传开发流程
2016/11/09 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
2017/07/03 Javascript
详解Vue2中组件间通信的解决全方案
2017/07/28 Javascript
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
浅析Node.js非对称加密方法
2018/01/29 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
2018/08/19 Javascript
浅谈vue加载优化策略
2019/03/19 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
微信小程序使用车牌号输入法的示例代码
2019/08/20 Javascript
js中关于Blob对象的介绍与使用
2019/11/29 Javascript
JavaScript实现tab栏切换效果
2020/03/16 Javascript
Python中列表和元组的使用方法和区别详解
2020/12/30 Python
让Django支持Sql Server作后端数据库的方法
2018/05/29 Python
pytorch中torch.max和Tensor.view函数用法详解
2020/01/03 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
localStorage、sessionStorage使用总结
2017/11/17 HTML / CSS
Html5页面上如何禁止手机虚拟键盘弹出
2020/03/19 HTML / CSS
德国婴儿推车和儿童安全座椅商店:BABYSHOP
2016/09/01 全球购物
Becextech新西兰:数码单反相机和手机在线商店
2018/04/27 全球购物
自愿解除劳动合同协议书
2014/09/11 职场文书
四风问题专项整治工作情况报告
2014/10/28 职场文书
教师先进个人材料
2014/12/17 职场文书
《中彩那天》教学反思
2016/02/24 职场文书
JavaScript流程控制(循环)
2021/12/06 Javascript