【Code】PHP实现返回两个时间点之间的时间间隔

项目中有个要计算两个时间之间的间隔的需求,但网上一直找不到啥好的方法就自己写了一个,比较粗糙,应该还有很大的优化空间…

    /**
     * @param $start 起始时间戳
     * @param $end 结束时间戳
     */
     function timeInterval($start, $end)
     {
        $return['year'] = 0;//年
        $return['mon'] = 0;//月
        $return['day'] = 0;//日
        $return['hour'] = 0;//时
        $return['min'] = 0;//分
        $return['sec'] = 0;//秒
        do
        {
            $time = strtotime('+1 year', $start);
            if($time <= $end)
            {
                $return['year'] += 1;
                $start = $time;
            }
            else
            {
                do
                {
                    $time = strtotime('+1 month', $start);
                    if($time <= $end)
                    {
                        $return['mon'] += 1;
                        $start = $time;
                    }
                    else
                    {
                        do
                        {
                            $time = $start + 86400;//1天的秒数
                            if($time <= $end)
                            {
                                $return['day'] += 1;
                                $start = $time;
                            }
                            else
                            {
                                do
                                {
                                    $time = $start + 3600;//1小时的秒数
                                    if($time <= $end)
                                    {
                                        $return['hour'] += 1;
                                        $start = $time;
                                    }
                                    else
                                    {
                                        do
                                        {
                                            $time = $start + 60;//1分钟的秒数
                                            if($time <= $end)
                                            {
                                                $return['min'] += 1;
                                                $start = $time;
                                            }
                                            else
                                            {
                                                $return['sec'] = $end - $start;//剩余秒数
                                            }
                                        }while($time < $end);
                                    }
                                }while($time < $end);
                            }
                        }while($time < $end);
                    }
                }while($time < $end);
            }
        }while($time < $end);
        return $return;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值