PHP中两个时间怎么比较??? 用mktime取得UNIX时间戳,然后可以直接用比较运算符。$time1 = mktime('13', '20', '10');$time2 = mktime('20', '56', '18'); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给你一个完全一点的例子<?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 天"; ?> <?php$t1 = strtotime("13:20:10");$t2 = strtotime("20:56:18");echo gmdate("H:i:s",$t2-$t1); //out 07:36:08?> 不对又错了!函数有一个变量放错了!因该这样这个函数正确的/** * 返回两个日期时间的差值,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现在的天数 请教JS参数如何赋给PHP ?? 请问如何使用php存取session? 关于PHP操作MYSQL数据库,乱码的问题,高手达人们,看看帮忙解决一下 关于变量的变量问题 招聘php项目经理 supplied argument is not a valid MySQL 初步判定为SQL语句错误 php错误抑制操作符@的用法解析 Error:例外被抛出且未被接住 PHP的树型菜单 请教关于PHP中作用于cell.ocx控件的问题。 请问如何在网页上放一个链接,点击后的效果是出现保存为 .csv格式的文件? 请教高手:PHP的调试问题(Zend Studio相关)
<?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 天";
?>
$t1 = strtotime("13:20:10");
$t2 = strtotime("20:56:18");
echo gmdate("H:i:s",$t2-$t1); //out 07:36:08
?>
* 返回两个日期时间的差值,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现在的天数