php计算两个时间之间的差

如何基于php语言计算两个时间之间相差多久呢?几天?几小时?几分钟?几秒?

从网上百度了一下,得到如下代码,不过我根据自己的需求稍稍改了一下。


/**

 * 获取两个时间之间的差值(差值在60秒之内表示为:刚刚;差值不足1小时表示为:xx分钟前;差值不足1天表示为:xx小时前;同年只显示年月;非同年显示年月日)
 */

function recent($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; 

/* 一天86400秒(24*60*60),做除法后取整得到天数 */

        $days = intval($timediff / 86400); 

/* %为取余,$remain 为取余的结果,然后进一步计算小时(除60*60,取整)*/

$remain = $timediff % 86400; 

        $hours = intval($remain / 3600); 


/* 计算分钟,秒数 */

        $remain = $remain % 3600; 

        $mins = intval($remain / 60); 

$secs = $remain % 60; 

/* 划分时间,指定提示 */

if (!$days) {

if (!$hours) {

if (!$mins) {

print "刚刚";

} else {

print $mins . "分钟前";

}

} else {

print $hours . "小时前";

}

} else {

if ($days <= 3) {

print $days . "天前";

} else{

date_default_timezone_set('PRC'); // 此行代码用于解决时间不准的问题

$this_year = date("Y");

$start_year = date("Y", $starttime);

if ($this_year == $start_year) {

print date("m-d", $starttime);

} else {

print date("Y-m-d", $starttime);

}
}
}

};


date_default_timezone_set('PRC');     // 此行代码解决时间date("Y-m-d H:i:s")显示的时间不准的问题

$now = strtotime(date("Y-m-d H:i:s"));

$begin = strtotime('2017-10-10 16:20:04');

recent($begin, $now);


结束啦!



猜你喜欢

转载自blog.csdn.net/m0_37391757/article/details/78233117
今日推荐