php如何算出身份证上面的年龄

gz109 2017-02-18 03:46:38
比如从数据库里面提取到了身份证号码,,431381197408191515
然后我用substr截取到出生日期,我想算出这个身份证 号码当前多少岁
思路就是当前时间戳,减去身份证日期,得出时间戳,然后再换算成年


$no='431381197408191515';
$one=substr($no,6,8); //提权中间时间
$y=substr($one,0,4); //提权年
$m=substr($one,4,2); //提取月
$d=substr($one,6,2); //提取天
$all=$y.$m.$d; //完整的生日日期
//拿到的值是 1974-08-19


//然后把拿到的日期格式转换成时间戳
$two=strtotime($all); //但是这里又有问题哦,因为我后面没有具体的小时分钟
//然后就是当前日期减去拿到的时间戳,然后再换算
$alltime=time()-$two;

//下面的东西我就不会写了,




...全文
637 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
similing 2017-02-21
  • 打赏
  • 举报
回复
不用时间戳做差,拿身份证的生日和time()比,先比月日谁更晚(先比月后比日),然后年作差,刚才比较的月日身份证的晚就减一岁,否则就不变
voidbit 2017-02-21
  • 打赏
  • 举报
回复

$no = '431381197408191515';
$year = substr($no, 6, 4);
$monthDay = substr($no, 10, 4);
 
$age = date('Y') - $year;
if ($monthDay > date('md')) {
    $age--;
}
 
echo $age;
voidbit 2017-02-21
  • 打赏
  • 举报
回复

$no = '431381197408191515';
$year = substr($no, 6, 4);
$month = substr($no, 10, 2);
$day = substr($no, 12, 2);

$age = date('Y') - $year;
if ($month > date('m') || $day > date('d')) {
    $age--;
}

echo $age;
傲雪星枫 2017-02-18
  • 打赏
  • 举报
回复

$no='431381197408191515';
$one=substr($no,6,8);    //提权中间时间
$y=substr($one,0,4);    //提权年
$m=substr($one,4,2);    //提取月
$d=substr($one,6,2);    //提取天

$birth = $y.'-'.$m.'-'.$d;
echo getAge($birth);

/**
 * 獲取年齡
 * @param date $birth 日期
 * @return int $age
 */
function getAge($birth) {
    $mybirth = getdate(strtotime($birth));
    $year = $mybirth['year'];
    $month = $mybirth['mon'];
    $day = $mybirth['mday'];

    $ndate = getdate();
    $nyear = $ndate['year'];
    $nmonth = $ndate['mon'];
    $nday = $ndate['mday'];

    $age = $nyear - $year;

    if (($nmonth * 100 + $nday) - ($month * 100 + $day) < 0) {
        $age = $age - 1;
    }
    return $age;
} 
42
xuzuning 2017-02-18
  • 打赏
  • 举报
回复
$no = '431381197408191515';
echo date('Y') - substr($no, 6, 4);

//足岁
echo date('Y') - substr($no, 6, 4) + (date('md') >= substr($no, 10, 4) ? 1 : 0);
DavidNineRoc 2017-02-18
  • 打赏
  • 举报
回复
date("Y-m-d");得到当前年月日 explode("-");分割当前的年月日 然后和你得到的分组计算就行了
内容概要:本文系统研究了构网型变流器的正负序阻抗解耦特性及其在弱电网环境下的稳定性表现,重点依托Matlab/Simulink仿真平台,构建了详细的阻抗数学模型,设计了解耦控制策略,并采用小信号扫频法进行频域辨识与稳定性验证。研究深入探讨了构网型变流器与传统跟网型逆变器在正负序阻抗特性上的本质差异,结合虚拟同步发电机(VSG)等先进控制技术,分析其在抑制宽频带振荡、削弱锁相环动态耦合等方面的优越性。文中不仅提供了完整的仿真模型与MATLAB代码实现,还整合了光伏、风电、储能、微电网等多类新能源系统的阻抗建模与稳定性分析资源,形成了一套面向新型电力系统稳定性的综合性技术资料体系,具有较强的科研复现与工程参考价值。; 适合人群:面向具备电力电子、电力系统自动化、新能源并网等专业背景的研究生、高校教师及工程技术人员,特别适用于从事阻抗建模、小干扰稳定性分析、宽频振荡机理研究以及撰写高水平学术论文的科研工作者。; 使用场景及目标:①掌握构网型变流器正负序阻抗建模与扫频辨识的仿真方法;②深入理解VSG等构网型控制在弱电网中提升稳定性的内在机理;③复现顶刊论文中的阻抗分析流程与稳定性判据应用;④利用提供的成熟模型与代码加速科研进程,支撑课题研究与学术成果产出。; 阅读建议:建议结合文中提供的Simulink模型与MATLAB代码,按照“理论建模—仿真搭建—扫频激励—频响提取—Nyquist判据分析”的完整流程进行实践操作,重点关注扫频信号的注入方式、频率范围设置及阻抗曲线的物理意义解读,并参考博士论文复现案例深化对复杂动态耦合问题的理解。

20,393

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧