php计算时间差并返回年月日

熊海
熊海

以前写过一篇《php计算时间差转换成年月日》的文章,但以前的计算方式没有深究每月天数的因素,统一是按照30天来计算的,计算结果存在一定的误差,经过摸索,提高了结果的准确性。

php计算时间差转换成年月日的功能用途还是十分广泛的,可以用于计算建站时间,年龄,某个时间距离另个时间,等等,计算结果返回 几年几个月几日。

<?PHP
function diffDate($date1,$date2){ 
$datestart= date('Y-m-d',strtotime($date1));
if(strtotime($datestart)>strtotime($date2)){ 
$tmp=$date2; 
$date2=$datestart; 
$datestart=$tmp; 
 } 
list($Y1,$m1,$d1)=explode('-',$datestart); 
list($Y2,$m2,$d2)=explode('-',$date2); 
$Y=$Y2-$Y1; 
$m=$m2-$m1; 
$d=$d2-$d1; 
if($d<0){ 
$d+=(int)date('t',strtotime("-1 month $date2")); 
$m--; 
} 
if($m<0){ 
$m+=12; 
$y--; 
} 
if($Y == 0){
return $m.'个月'.$d.'天';
}elseif($Y == 0 && $m == 0){
return $d.'天';
}else{
return $Y.'年'.$m.'个月'.$d.'天';
}
} 
?>

使用方法:

<?PHP
$catdata="1986-09-28"; //计算时间
echo diffDate($catdata,date('Y-m-d',time()));
?>

结果返回:28年0个月15天

支付宝打赏支付宝 微信
微信扫一扫
0 条评论

评论:

发送