php计算年龄精准到年月日的程序
发布:smiling 来源: PHP粉丝网 添加日期:2018-06-13 11:03:30 浏览: 评论:0
这篇文章主要介绍了php计算年龄精准到年月日的方法,涉及php操作日期与字符串的相关技巧,非常简单实用,需要的朋友可以参考下.
本文实例讲述了php计算年龄精准到年月日的方法,分享给大家供大家参考,具体如下:
- $ni) {
- $not_birth = 1;
- $tmp = array($byear, $bmonth, $bday);
- list($byear, $bmonth, $bday) = array($year, $month, $day);
- list($year, $month, $day) = $tmp;
- list($bi, $ni) = array($ni, $bi);
- }
- $years = 0;
- while (($bi + 10000) <= $ni) {//先取岁数
- $bi += 10000;
- $years++;
- $byear++;
- }//得到岁数后 抛弃年
- list($m, $d) = $this->getMD(array($year, $month, $day), array($byear, $bmonth, $bday));
- return array('year' => $years, 'month' => $m, 'day' => $d, 'not_birth' => $not_birth);
- }
- /**
- * 只能用于一年内计算
- * @param type $ymd
- * @param type $bymd
- */
- public function getMD($ymd, $bymd) {
- list($y, $m, $d) = $ymd;
- list($by, $bm, $bd) = $bymd;
- if (($m . $d) < ($bm . $bd)) {
- $m +=12;
- }
- $month = 0;
- while ((($bm . $bd) + 100) <= ($m . $d)) {
- $bm++;
- $month++;
- }
- if ($bd <= $d) {//同处一个月
- $day = $d - $bd;
- } else {//少一个月
- $mdays = $bm > 12 ? $this->_getMothDay( ++$by, $bm - 12) : $this->_getMothDay($by, $bm);
- $day = $mdays - $bd + $d;
- }
- return array($month, $day);
- }
- private function _getMothDay($year, $month) {
- switch ($month) {
- case 1:
- case 3:
- case 5:
- case 7:
- case 8:
- case 10:
- case 12:
- $day = 31;
- break;
- case 2:
- $day = (intval($year % 4) ? 28 : 29); //能被4除尽的为29天其他28天
- break;
- default:
- $day = 30;
- break;
- }
- return $day;
- }
- }
- $cage = new Age();
- $test = array(
- '1990-06-12',
- '1990-07-13',
- '1990-08-16',
- '1990-10-10',
- '1990-10-13',
- '1990-10-15',
- '1990-11-9',
- '1990-11-22',
- '2016-11-22',
- '2016-8-22',
- '2016-10-13',
- );
- echo date('Y-m-d');
- echo '
- ';
- foreach($test as $v){
- $tmp = $cage->calAge($v);
- echo $v , ':', $tmp['year'], '年', $tmp['month'],
- '月', $tmp['day'], '天', ';', $tmp['not_birth'], '
- ';
- }
- echo '
- ' ;
- /*
- 运行结果:
- 2015-10-13
- 1990-06-12:25年4月1天;0
- 1990-07-13:25年3月0天;0
- 1990-08-16:25年1月27天;0
- 1990-10-10:25年0月3天;0
- 1990-10-13:25年0月0天;0
- 1990-10-15:24年11月28天;0
- 1990-11-9:24年11月4天;0
- 1990-11-22:24年10月21天;0
- 2016-11-22:1年1月9天;1
- 2016-8-22:0年10月9天;1
- 2016-10-13:1年0月0天;1
- *
- */
希望本文所述对大家学习php程序设计有所帮助.
Tags: 年月日 年龄 程序
- 上一篇:php实现冒泡排序的例子
- 下一篇:PHP之将POST数据转化为字符串函数
相关文章
- ·php根据生日计算年龄的方法(2021-06-11)
- ·PHP程序员常犯的11个错误(2013-11-29)
- ·php 字符串编码转换程序(2013-12-03)
- ·PHP5中使用Web服务访问J2EE应用程序(2013-12-08)
- ·通过PHP程序知道蜘蛛是否访问你的网站(附代码)(2013-12-10)
- ·php中生成短网址实现程序代码(2014-01-06)
- ·PHP多进程简单实例程序(2014-01-10)
- ·PHP程序员一般都忽略了的几点精华(2014-01-13)
- ·一个简单php 抽奖小程序(2014-01-25)
- ·php入门级的PHP验证码程序(2014-02-10)
- ·PHP1到100求和各种实例程序(2014-02-22)
- ·php程序不显示错误设置方法(2014-03-03)
- ·php 获取checkbox表单取值程序代码(2014-03-05)
- ·php 页面跳转实现程序代码(2014-03-18)
- ·PHP+js+html+mysql中互相传值程序(2014-03-21)
- ·php程序必看优化之方法(2014-05-24)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)