2019独角兽企业重金招聘Python工程师标准>>>

因需要显示对象的年龄,在网上找了几个看着不是太理想,自己写了一个,取得两个时间戳相差年龄的函数,显示结果为x岁x月x天,年月为零时,不显示年月,原理为:年月日相减,数不够的,按年和月的进位借数,最终得到年月日的时间值。

<?PHP
/** ==============================* 此方法由 mantye 提供  * http://my.oschina.net/u/223350 * @date 2014-07-22* ==============================* @description    取得两个时间戳相差的年龄* @before         较小的时间戳* @after          较大的时间戳* @return str     返回相差年龄y岁m月d天
**/
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 ($y==0?'':$y.'岁').($m==0?'':$m.'个月').($d==0?'':$d.'天');
}
?>

转载于:https://my.oschina.net/u/223350/blog/293687

PHP年龄计算 取得两个时间戳相差的年龄年月日显示相关推荐

  1. PHP计算两个时间戳相差多少个月

    $strtotime=strtotime('2018-01-06'); $y=date('Y',$strtotime); $ys=date('Y',time()); $m=(int)date('m', ...

  2. JS计算两个时间相差多久,相差年,月,日,小时,分钟

    计算一个时间戳距离当前的时间,例如: 几年前,几个月前,几天前,几小时前,几分钟前,刚刚. 输出效果 代码: function getDistanceDay(time) {let stime = ne ...

  3. 如何计算CDS view里两个时间戳之间的天数间隔

    ABAP透明表里的时间戳,数据类型为dec: 有个需求:计算这两个时间戳之间的天数间隔,丢弃时间戳年-月-日8位后面的小时:分钟:秒. 举个例子:如果时间戳是20180918173132,丢弃1731 ...

  4. php两个时间戳相隔多少天

    根据需求不同 算出相隔时间天数也不同 需求一 2020-4-26 23:59:59 距离2020-4-27 0:00:00 时间相隔1天 因为26到27号 不管是差几秒 都是间隔1天 $day1= 1 ...

  5. java获取时间戳(计算两个时间相差几天几小时几秒,获取当前日期是周几。。。)

    java时间相关 博主所有博客都是验证过的 获取一个时间的时间戳 //获取当前时间戳Calendar cal1 = Calendar.getInstance();cal1.setTime(new Da ...

  6. java 日期只计算年月日大小_Java按自然月计算两个日期相差的年月日?

    曾经我以为计算两个日期之差很简单,在给我的团队成员分配任务时,也觉得就是调用一个方法的问题,可是当我发现结果老是不对时,才发现原来JDK 提供的API中根本没有这样的方法,我也很恼火,也怪不得不少牛人 ...

  7. php计算两个日期之间的小时数,PHP_php 计算两个时间戳相隔的时间的函数(小时),这个是可以具体到小时的php代 - phpStudy...

    php 计算两个时间戳相隔的时间的函数(小时) 这个是可以具体到小时的php代码 复制代码 代码如下: /* Author: 杨宇 yangyu@sina.cn */ //输入两个时间戳,计算差值,也 ...

  8. php 日期相减 时分秒,PHP计算两个时间戳间隔的日时分秒的代码实例

    关于PHP计算两个时间戳之间相差的日时分秒的代码 下面是PHP计算两个时间戳间隔的日时分秒的代码实例的相关内容,文章教程主要讲述与时间戳 间隔 分秒 相关的一些技术与知识,更多的内容欢迎大家访问htt ...

  9. 使用TIMESTAMPDIFF计算两个时间戳之间的时间间隔需要注意的细节

    问题阐述 A表中有字段如下: DROP TABLE IF EXISTS `A`; CREATE TABLE IF NOT EXISTS `A` (`userId` int(10) unsigned N ...

最新文章

  1. Solidworks2017安装与破解
  2. 为Office365增加密码过期自动提醒功能
  3. 《JAVA与模式》之适配器模式
  4. 2011软件设计大赛
  5. 我的机器学习入门之路(中)——深度学习(自然语言处理)
  6. oracle迁移postsql的,osdba's blog : Oracle迁移PostgreSQL系列文章之二:merge语句
  7. python 通信模块_python 多进程通信模块
  8. Applet、Scriptlet与Servlet
  9. Linux 网络配置 ifconfig、ip、netstat 命令的使用
  10. Linux 命令(134)—— groupmod 命令
  11. commons-fileupload的ServletFileUpload类
  12. (转)主成分分析(Principal components analysis)-最大方差解释
  13. 右键tomcat 选择 add and remove,出现的对话框里面没有我们的项目解决方法
  14. Hat’s Words HDU - 1247
  15. cesium雷达图_Cesium专栏-气象雷达动图(附源码下载)
  16. mac 添加右键 复制路径到剪贴版
  17. 8.18 @烤仔建工 | 抓住夏天的尾巴,和烤仔一起打造秘密花园吧
  18. dp主机_怎样设置显示器DP接口信号优先?
  19. 将微信聊天记录转成txt文件的最实用方法
  20. Flex和Flash一起使用开发项目各取所长

热门文章

  1. golang goroutine实现_golang中的Mutex设计原理详解(一)
  2. mysql用大白话解释_大白话 golang 教程-22-关系型数据库访问
  3. mybatis 多表查询-一对多(方法一 常用)
  4. python sqlite cursor
  5. Pandas to_string
  6. Java 项目 接口开发规范
  7. vue.js 表单 v-text
  8. C++vector容器
  9. Kubernetes入门培训(内含PPT)-(转)
  10. 华为云-云容器引擎 CCE新功能发布动态