当前位置: 首页 > news >正文

年龄php,PHP根据生日计算年龄两种方法(周岁)

温馨提示:本文共1429个字,读完预计4分钟。

1、计算年龄

functionhowOld($birth) {

list($birthYear, $birthMonth, $birthDay) = explode('-', date('Y-m-d', $birth));

list($currentYear, $currentMonth, $currentDay) = explode('-', date('Y-m-d'));

$age = $currentYear – $birthYear – 1;

if($currentMonth > $birthMonth || $currentMonth == $birthMonth && $currentDay >= $birthDay)

$age++;

return$age;

}

2、计算年龄(年月日)

function datediffage($before, $after) {

if ($before>$after) {

$b = getdate($after);

$a = getdate($before);

}

else {

$b = getdate($before);

$a = getdate($after);

}

$n = array(1=>31,2=>28,3=>31,4=>30,5=>31,6=>30,7=>31,8=>31,9=>30,10=>31,11=>30,12=>31);

$y=$m=$d=0;

if ($a[‘mday’]>=$b[‘mday’]) { //天相减为正

if ($a[‘mon’]>=$b[‘mon’]) {//月相减为正

$y=$a[‘year’]-$b[‘year’];$m=$a[‘mon’]-$b[‘mon’];

}

else { //月相减为负,借年

$y=$a[‘year’]-$b[‘year’]-1;$m=$a[‘mon’]-$b[‘mon’]+12;

}

$d=$a[‘mday’]-$b[‘mday’];

}

else {  //天相减为负,借月

if ($a[‘mon’]==1) { //1月,借年

$y=$a[‘year’]-$b[‘year’]-1;$m=$a[‘mon’]-$b[‘mon’]+12;$d=$a[‘mday’]-$b[‘mday’]+$n[12];

}

else {

if ($a[‘mon’]==3) { //3月,判断闰年取得2月天数

$d=$a[‘mday’]-$b[‘mday’]+($a[‘year’]%4==0?29:28);

}

else {

$d=$a[‘mday’]-$b[‘mday’]+$n[$a[‘mon’]-1];

}

if ($a[‘mon’]>=$b[‘mon’]+1) { //借月后,月相减为正

$y=$a[‘year’]-$b[‘year’];$m=$a[‘mon’]-$b[‘mon’]-1;

}

else { //借月后,月相减为负,借年

$y=$a[‘year’]-$b[‘year’]-1;$m=$a[‘mon’]-$b[‘mon’]+12-1;

}

}

}

return (string)$y;

}

相关文章:

  • weblogic中两种不同的运行wlst脚本的方式
  • 微信h5登录php,H5 微信开发接入流程(网页登陆授权JS-SDK授权)
  • java怎么快速添加scanner,java的数据类型(基本数据类型)、 扫描器(Scanner)、Editplus快速完成的设置!...
  • 软件工程专家(左春的专栏)
  • php ajax success,Ajax请求发送成功但不进success如何解决
  • .net专家(张羿专栏)
  • ycmj.php,vim 编译YCM编译出错?求解决办法?
  • 开源代码专家 (胡争辉)
  • momo php framework,momo.php
  • 游戏开发专家 (孙丰国)
  • php工程师的段子,江湖上一些关于程序员的段子
  • Visual Basic专家:马畅
  • php足疗预约,足浴养生管理系统轻松实现各种线上预约功能?
  • mysql 点击,点击页面就自动输入到mysql.求解.
  • 感谢Katty
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • bearychat的java client
  • gcc介绍及安装
  • Javascript基础之Array数组API
  • javascript数组去重/查找/插入/删除
  • Java深入 - 深入理解Java集合
  • Java小白进阶笔记(3)-初级面向对象
  • JS 面试题总结
  • Mithril.js 入门介绍
  • PAT A1017 优先队列
  • SwizzleMethod 黑魔法
  • ViewService——一种保证客户端与服务端同步的方法
  • 编写高质量JavaScript代码之并发
  • 分享一份非常强势的Android面试题
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 基于web的全景—— Pannellum小试
  • 力扣(LeetCode)21
  • 如何使用 JavaScript 解析 URL
  • MPAndroidChart 教程:Y轴 YAxis
  • ​secrets --- 生成管理密码的安全随机数​
  • ​比特币大跌的 2 个原因
  • ​决定德拉瓦州地区版图的关键历史事件
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #162 (Div. 2)
  • #每日一题合集#牛客JZ23-JZ33
  • (2015)JS ES6 必知的十个 特性
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (十)c52学习之旅-定时器实验
  • .NET 5种线程安全集合
  • .Net 8.0 新的变化
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .NET下ASPX编程的几个小问题
  • /bin、/sbin、/usr/bin、/usr/sbin
  • [ACTF2020 新生赛]Include
  • [ActionScript][AS3]小小笔记
  • [Angular] 笔记 16:模板驱动表单 - 选择框与选项
  • [BZOJ 2142]礼物(扩展Lucas定理)