用mktime取得UNIX时间戳,然后可以直接用比较运算符。$time1 = mktime('13', '20', '10');
$time2 = mktime('20', '56', '18');

解决方案 »

  1.   

    给你一个完全一点的例子
    <?PHP 
    $Date_1="2005-7-15";//也可以是:$Date_1="2003-6-25 23:29:14"; 
    $Date_2="1983-10-1"; 
    $Date_List_1=explode("-",$Date_1); 
    $Date_List_2=explode("-",$Date_2); 
    $d1=mktime(0,0,0,$Date_List_1[1],$Date_List_1[2],$Date_List_1[0]); 
    $d2=mktime(0,0,0,$Date_List_2[1],$Date_List_2[2],$Date_List_2[0]); 
    $Days=round(($d1-$d2)/3600/24); 
    Echo   "已经历了 $Days 天"; 
    ?>
      

  2.   

    <?php
    $t1 = strtotime("13:20:10");
    $t2 = strtotime("20:56:18");
    echo gmdate("H:i:s",$t2-$t1); //out 07:36:08
    ?>
      

  3.   

    不对又错了!函数有一个变量放错了!因该这样这个函数正确的/**
     * 返回两个日期时间的差值,T2-T1:时间格式可以为 2000-01-01 01:01:01,$RetFormat:[D/H/I/S]
     * $DateTime2 默认值为当前时间
     * @param datetime $DateTime1
     * @param datetime $DateTime2
     * @param string $RetFormat
     * @return float
     * @author Lijian
     */
    function get2DT1SubDT2Operate($DateTime1, $DateTime2="", $RetFormat="S")
    {
    //如果$DateTime2为空,设置为当前的时间
    if ($DateTime2 == "") $DateTime2 = date("Y-m-d H:i:s"); //格式化时间
    $DateTimeTemp = strftime("%Y-%m-%d %H:%M:%S",strtotime($DateTime1));//格式化字符串
    $iTemp["Y"] = intval(substr($DateTimeTemp,0,4));
    $iTemp["M"] = intval(substr($DateTimeTemp,5,2));
    $iTemp["D"] = intval(substr($DateTimeTemp,8,2));
    $iTemp["H"] = intval(substr($DateTimeTemp,11,2));
    $iTemp["I"] = intval(substr($DateTimeTemp,14,2));
    $iTemp["S"] = intval(substr($DateTimeTemp,17,2));
    $aDT[] = $iTemp;
    unset($iTemp);
    $DateTimeTemp = strftime("%Y-%m-%d %H:%M:%S",strtotime($DateTime2));//格式化字符串
    $iTemp["Y"] = intval(substr($DateTimeTemp,0,4));
    $iTemp["M"] = intval(substr($DateTimeTemp,5,2));
    $iTemp["D"] = intval(substr($DateTimeTemp,8,2));
    $iTemp["H"] = intval(substr($DateTimeTemp,11,2));
    $iTemp["I"] = intval(substr($DateTimeTemp,14,2));
    $iTemp["S"] = intval(substr($DateTimeTemp,17,2));
    $aDT[] = $iTemp;
    //$DateTime2 - $DateTime1的时间差值,单位秒
    $iSec = mktime($aDT[1]["H"], $aDT[1]["I"], $aDT[1]["S"],
       $aDT[1]["M"], $aDT[1]["D"], $aDT[1]["Y"]) -
    mktime($aDT[0]["H"], $aDT[0]["I"], $aDT[0]["S"],
       $aDT[0]["M"], $aDT[0]["D"], $aDT[0]["Y"]); //格式化输出值
    if ($RetFormat == "S")
    return $iSec;
    elseif ($RetFormat == "I")
    return $iSec / 60;
    elseif ($RetFormat == "H")
    return $iSec / (60 * 60);
    elseif ($RetFormat == "D")
    return $iSec / (60 * 60 * 24);
    }调用的时候这样调用就好了:
    get2DT1SubDT2Operate("2005-10-1")  即:获得2005-10-1到现在相隔多少秒
    get2DT1SubDT2Operate("2005-10-1","","H")  即:获得2005-10-1到现在相隔多少小时
    get2DT1SubDT2Operate("2005-10-1","","I")  即:获得2005-10-1到现在相隔多少分钟
    get2DT1SubDT2Operate("2005-10-1","","D")  即:获得2005-10-1到现在相隔多少天
    get2DT1SubDT2Operate("2005-10-1 15:00:00","2006-01-01","D")  即:获得2005-10-1 15:00:00到2006-01-01现在的天数