PHP计算两个时间之间相差天数(包括自然天)
匿名 · 更新于 2018/1/31
/**
* @param $start_time 起始时间
* @param int $end_time 结束时间 默认0为当前时间
* @param int $day_type 计算天类型 默认1为自然天 2为计费天(纯粹按照相差时间计算的天数)
* @return float|int
*/
function calculate_difference_days($start_time,$end_time = 0,$day_type = 1){
if(!is_numeric($start_time)){ //不是时间戳 转为时间戳
$start_time = strtotime($start_time);
}
if(!is_numeric($end_time)){ //不是时间戳 转为时间戳
$end_time = strtotime($end_time);
}
if(empty($end_time)){
$end_time = time();
}
if($start_time > $end_time){
return false;
}
if($day_type == 1){
$cha_time = ($end_time-$start_time)%(3600*24);
$cha_zheng_time = (strtotime(date('Y-m-d',$start_time))+3600*24)-$start_time;
$is_cha_day = $cha_time - $cha_zheng_time;
if($is_cha_day >= 0){
$cha_day = ceil(($end_time-$start_time)/(3600*24))+1;
}else{
$cha_day = ceil(($end_time-$start_time)/(3600*24));
}
}else if($day_type == 2){
$cha_day = ceil(($end_time-$start_time)/(3600*24));
}else{
return false;
}
return $cha_day;
}
