<?php/*** 身份证校验* @param unknown $id* @return boolean*/public static function isIdcard($id){$id = strtoupper($id);// 检查18位$regx = "/^(\d{6})+(\d{4})+(\d{2})+(\d{2})+(\d{3})([0-9]|X)$/";@preg_match($regx, $id, $arr_split);$dtm_birth = $arr_split[2] . '/' . $arr_split[3] . '/' . $arr_split[4];//检查生日日期是否正确$date = strtotime($dtm_birth);if(!$date){return false;}// 未满十八周岁不可注册$age = self::getAgeByBirth($date,2);if($age < 18){exit(json_encode(array('code'=>0,'msg'=>'未满18周岁不可注册!')));}//检验18位身份证的校验码是否正确。//校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。$arr_int = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];$arr_ch = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];$sign = 0;for ( $i = 0; $i < 17; $i++ ){$b = (int) $id[$i];$w = $arr_int[$i];$sign += $b * $w;}$n = $sign % 11;$val_num = $arr_ch[$n];if ($val_num != substr($id,17, 1)){return false;}else{return true;}}/*** $date是时间戳* $type为1的时候是虚岁,2的时候是周岁*/public static function getAgeByBirth($date,$type = 1){$nowYear = date("Y",time());$nowMonth = date("m",time());$nowDay = date("d",time());$birthYear = date("Y",$date);$birthMonth = date("m",$date);$birthDay = date("d",$date);if($type == 1){$age = $nowYear - ($birthYear - 1);}else{if($nowMonth<$birthMonth){$age = $nowYear - $birthYear - 1;}elseif($nowMonth==$birthMonth){if($nowDay<$birthDay){$age = $nowYear - $birthYear - 1;}else{$age = $nowYear - $birthYear;}}else{$age = $nowYear - $birthYear;}}return $age;}/** 根据身份证号,获取性别* string   $idcard 完整的身份证号* 0未知* 1男* 2女*/public static function getSexById($idcard){// 获取身份证倒数第二位数字$number = substr($idcard, strlen($idcard) - 2, 1);if ($number % 2 == 0) { // 偶数女return 2;} else { // 基数男return 1;}}

php 身份证格式校验,年龄计算相关推荐

  1. PostgreSQL pgsql身份证格式校验,身份证格式提取api

    PostgreSQL pgsql身份证格式校验,身份证格式提取api 身份证ID结构说明 身份证号包含的信息: 空间:6位行政区划 时间:出生日期8位(二代),6位(一代) 顺序:同地区同日期内出生人 ...

  2. 严格身份证格式校验,真实身份证号校验方法文件CheckIdCardUtil.js

    业务需求,需要用到非常严格的身份证号格式校验 这里校验方法经过测试真实身份证号码日期改一位都不行,必须完全真实号码 以下内容是项目中用到的校验方法,记录下来防止以后再用到 import check f ...

  3. uniapp,vue中的身份证格式校验

    html <template><view><input type="text" placeholder="请输入身份证号" pla ...

  4. SpringBoot自定义注解实现身份证号格式校验

    背景 ​ 身份证的组成部分较为复杂, 如果仅使用正则表达式的话, 有些情况也无法校验出来, 例如正确的证件号为513334200310119074, 如果把最后一位变成9, 则是一个错误的证件号, 但 ...

  5. 身份证合法性校验规则

    身份证构成说明: 身份证号构成(从左到右): 第1-6位数是行政区域编码 第7到第14位是出生日期 第15-17位是同一天出生的顺序号(男的用奇数数,女的用偶数) 第18位是校验码,根据ISO7064 ...

  6. java身份证号码校验工具类

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...

  7. java年龄计算_一个简单的java年龄计算器

    制作一个如下图年龄计算器 根据题目,我做了一个由Calendar类以及年月日各相减得到的年龄,当然正确的方法不止一个,以下为我的源代码和结果截图: package com.Date; import j ...

  8. 日期和身份证年龄计算相关小工具

    /*取日期多少天后的日期*/ function getDate(date, changeDay) {var year = date.getFullYear() // 年var month = date ...

  9. 【通用方法】身份证号校验、获取年龄性别生日(兼容一代二代身份证)

    二代身份证正则表达式 /^(([1][1-5])|([2][1-3])|([3][1-7])|([4][1-6])|([5][0-4])|([6][1-5])|([7][1])|([8][1-2])) ...

  10. js生日计算年龄_如何提取身份证生日和年龄,几行VBA代码教你学会

    No.1 身份证里包含了个人生日信息,根据生日也可以计算出年龄. 办公过程中,如果一个一个信息录入,是不是显得十分疲劳. 如果遇到这样有规律的工作,还是交给电脑来做更有优势. 下面介绍一下,如何在身份 ...

最新文章

  1. Python:从零搭建Redis-Scrapy分布式爬虫
  2. Proximal Algorithms 3 Interpretation
  3. mysql command line闪退_MySQL Command Line Client 打不开(闪退)的解决
  4. jquery实现抽奖系统
  5. thinkpad笔记本散热风扇_极致的散热体验,ORICO 全铝DIY双风扇笔记本散热垫评测...
  6. gitignore不起作用
  7. Java虚拟机-垃圾回收器
  8. matlab迭代xyz到blh,基于matlab的坐标转换精编.doc
  9. 开源中国 4 周年, 三个平台客户端全面开源
  10. python安装api_Python API文档
  11. python standardscaler_定制便携python工具箱
  12. js中match的用法
  13. 插拔usb设备计算机管理无反应,usb插上电脑没反应,详细教您浏览修复usb方法
  14. 最新美女COS写真网站整站源码下载+实测可用/带数据
  15. USB:Type-A、Type-B、Type-C、miniUSB、microUSB接口类型区分
  16. 嵌入式实时操作系统及应用开发(第三版)罗蕾主编光盘镜像
  17. 编程”灵魂之心“之消息机制
  18. 2021年新版本下载钉钉群直播回放视频方法介绍
  19. Cisco Packet Tracer 多区域OSPF配置实验
  20. 微信小程序模板template的使用

热门文章

  1. 题目 1427: 蓝桥杯2013年第四届真题-买不到的数目
  2. ML之LIME:可解释性之LIME/SP-LIME的简介、原理、使用方法、经典案例之详细攻略
  3. python +高德地图API调用
  4. word2016文档在正文分栏情况下而时脚注不分栏
  5. 使用Java程序发送邮件|发送有附件的邮件|进行邮件群发
  6. 微软商店无法连接网络的问题解决
  7. 第五篇:手把手教你移植任天堂,没有声音、无需外置SD卡、可使用独立按键也可使用外置手柄,本人使用的芯片为ESP32,移植到STM32均可使用。(本篇完结nes模拟器的移植)
  8. 使用Elasticsearch做向量空间内的相似性搜索
  9. 下载python开发环境
  10. 大疆网上测评题库_大疆在线测评 - 逻辑题