php计算两个时间差并返回差多少天、时、分、秒

function timediff($begin_time,$end_time)
{
     if($begin_time < $end_time){
        $starttime = $begin_time;
        $endtime = $end_time;
     }
     else{
        $starttime = $end_time;
        $endtime = $begin_time;
     }
     $timediff = $endtime-$starttime;
     $days = intval($timediff/86400);
     $remain = $timediff%86400;
     $hours = intval($remain/3600);
     $remain = $remain%3600;
     $mins = intval($remain/60);
     $secs = $remain%60;
     $res = array("day" => $days,"hour" => $hours,"min" => $mins,"sec" => $secs);
     return $res;
}

=================================================================================

另一种方法:

我们在使用PHP编程中可能需要比较两个时间差,如果直接通过<=>比较会有问题,所以要通过strtotime()函数来控制,具体方法如下:

    假设现在要比较的两个时间为$htmer1$htmer2,我们先要用strtotime()函数计算出两个时间各自的时间戳(关于什么是时间戳,请参考:什么是时间戳),然后用下面的代码比较即可:

    $times=strtotime(&htmer2)-strtotime($htmer1)    //计算出两个时间差,得到相差的秒数
    $timei=round(times/60)    //可以得出相差的分钟数,round()是四舍五入

    以上代码即完成了两个时间之间的比较,可以根据具体情况进行具体的操作,下面再介绍一下strtotime()的反运算,大家可以用下面的代码做个测试。

    <?php
    echo strtotime("2008-8-8 08:08:08");    //计算出2008-8-8 08:08:08时间戳
    echo "<br />";
    echo date("Y-m-d H:i:s",strtotime("2008-8-8 08:08:08"));    //根据上面计算出来的时间戳算出具体的时间
    ?>

原文地址:https://www.cnblogs.com/buffer/p/1729528.html