根据宝宝生日返回当前宝宝年龄

/**
 * 根据时间返回宝宝多大
 * @param time $day 宝宝生日日期
 * @param null $time 当前时间
 * @param null type  type= 1 返回宝宝距离今日多少月不满一个月返回0
 *
 */
function babytime($day, $time = null, $type = null)
{
    //把日期拆分 ,年  ,月,日 ,分别对比
    if (!isset($time)) {
        $time = date("Y-n-j");
    }
    list($Y1, $m1, $d1) = explode('-', $day);
    list($Y2, $m2, $d2) = explode('-', $time);
    //判断是否在同一年
    if ($Y2 == $Y1) {
        //判断日
        if ($d2 > $d1) {
            $y = 0;
            $m = $m2 - $m1;
            $d = $d2 - $d1;
        } elseif ($d1 > $d2) {
            $y = 0;
            $m = $m2 - $m1 - 1;
            $days = date('t', strtotime("$time -1 month"));
            $d = $days - $d1 + $d2;
        } else {
            if ($m2 == $m1) {
                $y = 0;
                $m = 0;
                $d = 0;
            } else {
                $y = 0;
                $m = $m2 - $m1;
                $d = 0;
            }
        }
    } elseif ($Y2 > $Y1) {
        //判断月
        if ($m2 > $m1) {
            if ($d2 > $d1) {
                $y = $Y2 - $Y1;
                $m = $m2 - $m1;
                $d = $d2 - $d1;
            } elseif ($d2 < $d1) {
                $y = $Y2 - $Y1;
                $m = $m2 - $m1 - 1;
                $days = date('t', strtotime(-1, $time));
                $d = $days - $d1 + $d2;
            } else {
                $y = $Y2 - $Y1;
                $m = $m2 - $m1;
                $d = 0;
            }
        } elseif ($m2 < $m1) {
            if ($d2 > $d1) {
                $y = $Y2 - $Y1 - 1;
                $m = 12 - $m1 + $m2;
                $d = $d2 - $d1;
            } elseif ($d2 < $d1) {
                $y = $Y2 - $Y1 - 1;
                $m = 12 - $m1 + $m2 - 1;
                $days = date('t', strtotime(-1, $time));
                $d = $days - $d1 + $d2;
            } else {
                $y = $Y2 - $Y1 - 1;
                $m = 12 - $m1 + $m2;
                $d = 0;
            }

        } else {
            if ($d2 > $d1) {
                $y = $Y2 - $Y1;
                $m = 0;
                $d = $d2 - $d1;
            } elseif ($d2 < $d1) {
                $y = $Y2 - $Y1 - 1;
                $m = 11;
                $days = date('t', strtotime(-1, $time));
                $d = $days - $d1 + $d2;
            } else {
                $y = $Y2 - $Y1;
                $m = 0;
                $d = 0;
            }
        }
    }
    if ($type) {
        $month = $y * 12 + $m;
        return $month;

    } else {
        //处理字符串显示
        if ($y) {
            $y = $y . '';
        } else {
            $y = '';
        }
        if ($m) {
            $m = $m . '个月';
        } else {
            $m = '';
        }
        if ($d+1) {
            $d = $d+1 . '';
        } else {
            $d = '';
        }
        return $y . $m . $d;
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值