在这里让我们一起学习,一起提高!
问题:2007-08-19 6:10:16 和2007-08-20 16:11:03 怎样得出两个时间差来啊,得出结果是×小时×分×秒啊??
获得时间戳(笨办法):
function GetMkTime($dtime)
{
if(!ereg("[^0-9]",$dtime)) return $dtime;
$dt = Array(1970,1,1,0,0,0);
$dtime = ereg_replace("[\r\n\t]|日|秒"," ",$dtime);
$dtime = str_replace("年","-",$dtime);
$dtime = str_replace("月","-",$dtime);
$dtime = str_replace("时",":",$dtime);
$dtime = str_replace("分",":",$dtime);
$dtime = trim(ereg_replace("[ ]{1,}"," ",$dtime));
$ds = explode(" ",$dtime);
$ymd = explode("-",$ds[0]);
if(isset($ymd[0])) $dt[0] = $ymd[0];
if(isset($ymd[1])) $dt[1] = $ymd[1];
if(isset($ymd[2])) $dt[2] = $ymd[2];
if(strlen($dt[0])==2) $dt[0] = '20'.$dt[0];
if(isset($ds[1])){
$hms = explode(":",$ds[1]);
if(isset($hms[0])) $dt[3] = $hms[0];
if(isset($hms[1])) $dt[4] = $hms[1];
if(isset($hms[2])) $dt[5] = $hms[2];
}
foreach($dt as $k=>$v){
$v = ereg_replace("^0{1,}","",trim($v));
if($v=="") $dt[$k] = 0;
}
$mt = @mktime($dt[3],$dt[4],$dt[5],$dt[1],$dt[2],$dt[0]);
if($mt>0) return $mt;
else return time();
}
方法一:
<?php
function getTimeDifference($time_one,$time_two)
{
$stamp_one=strtotime($time_one);
$stamp_two=strtotime($time_two);
$time_diff=abs($stamp_one-$stamp_two);
$diff_time=getdate($time_diff);
$diff_time["year"]-=1970;
$diff_time["mon"]-=1;
$diff_time["mday"]-=1;
// ar_dump($diff_time);
return "时间相差:".$diff_time["year"]."年".$diff_time["mon"]."月".$diff_time["mday"]."日".$diff_time["hours"]."时".$diff_time["minutes"]."分".$diff_time["seconds"];
}
print getTimeDifference("2007-08-19 6:10:16","2007-08-20 16:11:03")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-08-19 16:11:03")."<br>";
print getTimeDifference("2005-08-19 6:10:16","2007-08-20 16:11:03")."<br>";
?>
方法二:
<?
function getTimeDifference($time_one,$time_two)
{
$stamp_one=strtotime($time_one);
$stamp_two=strtotime($time_two);
$diff_time=($stamp_one-$stamp_two);
$day=intval($diff_time/86400);
$hour=intval(($diff_time-$day*86400)/3600);
$minutes=intval(($diff_time-$day*86400-$hour*3600)/60);
$seconds=$diff_time-$day*86400-$hour*3600-$minutes*60;
return "时间相差:".$day."天".$hour."小时".$minutes."分".$seconds."秒";
}
$aa="2007-08-19 6:10:16";
$bb="2007-08-20 16:11:03";
echo getTimeDifference($bb,$aa);
?>
方法三:
echo getTimeDifference('2007-08-19 6:10:16','2007-08-20 16:11:03');
function getTimeDifference($time_one,$time_two) //0年0月1日10时0分
{
$stamp_one=strtotime($time_one);
$stamp_two=strtotime($time_two);
$time_diff=abs($stamp_one-$stamp_two);
$diff_time = array();
$diff_time["year"] = 0;
if($time_diff > 31536000) //一年31536000秒
$diff_time["year"] = floor($time_diff / 31536000);
$time_diff = $time_diff - $diff_time["year"] * 31536000;
$diff_time["month"] = 0;
if($time_diff > 2592000) //一月2592000秒
$diff_time["month"] = floor($time_diff / 2592000);
$time_diff = $time_diff - $diff_time["month"] * 2592000;
$diff_time["day"] = 0;
if($time_diff > 86400) //一天86400秒
$diff_time["day"] = floor($time_diff / 86400);
$time_diff = $time_diff - $diff_time["day"] * 86400;
$diff_time["hour"] = 0;
if($time_diff > 3600) //一小时3600秒
$diff_time["hour"] = floor($time_diff / 3600);
$time_diff = $time_diff - $diff_time["hour"] * 3600;
$diff_time["minute"] = 0;
if($time_diff > 60) //一分60秒
$diff_time["minute"] = floor($time_diff / 60);
$time_diff = $time_diff - $diff_time["minute"] * 60;
return "时间相差:".$diff_time["year"]."年".$diff_time["month"]."月".$diff_time["day"]."日".$diff_time["hour"]."时".$diff_time["minute"]."分";
}
方法四:
<?php
function getTimeDifference($time_one,$time_two)
{
$stamp_one=strtotime($time_one);
$stamp_two=strtotime($time_two);
$time_diff=abs($stamp_one-$stamp_two);
/ diff_time=getdate($time_diff);
$days=intval($time_diff/3600/24);
$hours=intval( ($time_diff - (3600*24*$days)) / 3600);
$minutes=intval(($time_diff- (3600*24)*$days - 3600*$hours )/60);
$seconds=$time_diff%60;
return "时间相差:".$days."日".$hours."时".$minutes."分".$seconds."秒";
}
print getTimeDifference("2007-08-19 6:10:16","2007-08-19 6:10:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-08-19 16:05:00")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-10-19 6:15:14")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-08-19 6:12:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-08-19 8:10:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-08-17 6:10:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-10-19 6:10:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2009-08-19 6:10:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2027-08-19 6:10:16")."<br>";
?>
获得时间戳(笨办法):
function GetMkTime($dtime)
{
if(!ereg("[^0-9]",$dtime)) return $dtime;
$dt = Array(1970,1,1,0,0,0);
$dtime = ereg_replace("[\r\n\t]|日|秒"," ",$dtime);
$dtime = str_replace("年","-",$dtime);
$dtime = str_replace("月","-",$dtime);
$dtime = str_replace("时",":",$dtime);
$dtime = str_replace("分",":",$dtime);
$dtime = trim(ereg_replace("[ ]{1,}"," ",$dtime));
$ds = explode(" ",$dtime);
$ymd = explode("-",$ds[0]);
if(isset($ymd[0])) $dt[0] = $ymd[0];
if(isset($ymd[1])) $dt[1] = $ymd[1];
if(isset($ymd[2])) $dt[2] = $ymd[2];
if(strlen($dt[0])==2) $dt[0] = '20'.$dt[0];
if(isset($ds[1])){
$hms = explode(":",$ds[1]);
if(isset($hms[0])) $dt[3] = $hms[0];
if(isset($hms[1])) $dt[4] = $hms[1];
if(isset($hms[2])) $dt[5] = $hms[2];
}
foreach($dt as $k=>$v){
$v = ereg_replace("^0{1,}","",trim($v));
if($v=="") $dt[$k] = 0;
}
$mt = @mktime($dt[3],$dt[4],$dt[5],$dt[1],$dt[2],$dt[0]);
if($mt>0) return $mt;
else return time();
}
方法一:
<?php
function getTimeDifference($time_one,$time_two)
{
$stamp_one=strtotime($time_one);
$stamp_two=strtotime($time_two);
$time_diff=abs($stamp_one-$stamp_two);
$diff_time=getdate($time_diff);
$diff_time["year"]-=1970;
$diff_time["mon"]-=1;
$diff_time["mday"]-=1;
// ar_dump($diff_time);
return "时间相差:".$diff_time["year"]."年".$diff_time["mon"]."月".$diff_time["mday"]."日".$diff_time["hours"]."时".$diff_time["minutes"]."分".$diff_time["seconds"];
}
print getTimeDifference("2007-08-19 6:10:16","2007-08-20 16:11:03")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-08-19 16:11:03")."<br>";
print getTimeDifference("2005-08-19 6:10:16","2007-08-20 16:11:03")."<br>";
?>
方法二:
<?
function getTimeDifference($time_one,$time_two)
{
$stamp_one=strtotime($time_one);
$stamp_two=strtotime($time_two);
$diff_time=($stamp_one-$stamp_two);
$day=intval($diff_time/86400);
$hour=intval(($diff_time-$day*86400)/3600);
$minutes=intval(($diff_time-$day*86400-$hour*3600)/60);
$seconds=$diff_time-$day*86400-$hour*3600-$minutes*60;
return "时间相差:".$day."天".$hour."小时".$minutes."分".$seconds."秒";
}
$aa="2007-08-19 6:10:16";
$bb="2007-08-20 16:11:03";
echo getTimeDifference($bb,$aa);
?>
方法三:
echo getTimeDifference('2007-08-19 6:10:16','2007-08-20 16:11:03');
function getTimeDifference($time_one,$time_two) //0年0月1日10时0分
{
$stamp_one=strtotime($time_one);
$stamp_two=strtotime($time_two);
$time_diff=abs($stamp_one-$stamp_two);
$diff_time = array();
$diff_time["year"] = 0;
if($time_diff > 31536000) //一年31536000秒
$diff_time["year"] = floor($time_diff / 31536000);
$time_diff = $time_diff - $diff_time["year"] * 31536000;
$diff_time["month"] = 0;
if($time_diff > 2592000) //一月2592000秒
$diff_time["month"] = floor($time_diff / 2592000);
$time_diff = $time_diff - $diff_time["month"] * 2592000;
$diff_time["day"] = 0;
if($time_diff > 86400) //一天86400秒
$diff_time["day"] = floor($time_diff / 86400);
$time_diff = $time_diff - $diff_time["day"] * 86400;
$diff_time["hour"] = 0;
if($time_diff > 3600) //一小时3600秒
$diff_time["hour"] = floor($time_diff / 3600);
$time_diff = $time_diff - $diff_time["hour"] * 3600;
$diff_time["minute"] = 0;
if($time_diff > 60) //一分60秒
$diff_time["minute"] = floor($time_diff / 60);
$time_diff = $time_diff - $diff_time["minute"] * 60;
return "时间相差:".$diff_time["year"]."年".$diff_time["month"]."月".$diff_time["day"]."日".$diff_time["hour"]."时".$diff_time["minute"]."分";
}
方法四:
<?php
function getTimeDifference($time_one,$time_two)
{
$stamp_one=strtotime($time_one);
$stamp_two=strtotime($time_two);
$time_diff=abs($stamp_one-$stamp_two);
/ diff_time=getdate($time_diff);
$days=intval($time_diff/3600/24);
$hours=intval( ($time_diff - (3600*24*$days)) / 3600);
$minutes=intval(($time_diff- (3600*24)*$days - 3600*$hours )/60);
$seconds=$time_diff%60;
return "时间相差:".$days."日".$hours."时".$minutes."分".$seconds."秒";
}
print getTimeDifference("2007-08-19 6:10:16","2007-08-19 6:10:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-08-19 16:05:00")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-10-19 6:15:14")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-08-19 6:12:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-08-19 8:10:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-08-17 6:10:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2007-10-19 6:10:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2009-08-19 6:10:16")."<br>";
print getTimeDifference("2007-08-19 6:10:16","2027-08-19 6:10:16")."<br>";
?>