如何在php中计算从开始时间到结束时间所消耗的时间


How to calculate the time consumed from start time to end time in php

我想得到消耗的完美时间或从开始时间到结束时间的总时间:
我的代码:

   $start_time =  $this->input->post('start_time');
   $end_time =  $this->input->post('end_time');

   $t1  = strtotime($start_time);
   $t2 = strtotime($end_time);
   $differenceInSeconds = $t2 - $t1;
   $differenceInHours = $differenceInSeconds / 3600;
   if($differenceInHours<0) {
     $differenceInHours += 24; 
    }

在上面的代码中,如果$start_time=11:00:00 PM$end_date =11:30:00,它会给我0.5的输出,而不是30minutes。有什么合适的方法可以这样做吗
因此,如果:

  $start_time  = '01:00:00 PM';
  $end_time = '01:25:00 PM';
  $total = '25:00'; // 25 minutes

或:

  $start_time  = '11:00:00 PM';
  $end_time = '11:00:25 PM';
  $total = '00:00:25'; // 25seconds

问候!

尝试差异函数

<?php
echo date_create('03:00:00 PM')->diff(date_create('03:25:00 PM'))->format('%H:%i:%s');
?>

输出


00:25:00

尝试使用diff:

echo date_create('01:00:00 PM')->diff(date_create('01:25:00 PM'))->format('%H:%i:%s');

您必须使用if和else语句检查所有内容。我认为这个有帮助。

 $start_time =  "11:00:00";
 $end_time =  "12:30:00";

  $t1  = strtotime($start_time);
  $t2 = strtotime($end_time);
  $difference = $t2 - $t1;

  if($difference / 3600 > 0){
     $hour = $difference / 3600;
     $hour = (int)$hour;
     $difference = $difference - ($hour * 3600);
  }else{
     $hour = "00";
  }
  if($difference / 60 > 0){
       $min = $difference / 60;
       $difference = $difference - ($min * 60);
  }else{
       $min = "00";
  }
  function checkString($str){
        if(strlen($str)==1){
        return "0".$str;
    }
    return $str;
  }
  print_r(checkString($hour).":".checkString($min).":".checkString($difference));
<?php
$start_time = strtotime('09:00:59');
$end_time = strtotime('09:01:00');
$diff = $end_time - $start_time;
echo 'Time 1: '.date('H:i:s', $start_time).'<br>';
echo 'Time 2: '.date('H:i:s', $end_time).'<br>';
if($diff){
    echo 'Diff: '.date('H:i:s', $diff);
}else{
    echo 'No Diff.';
}

您可以使用strtotime()进行时间计算。这里有一个例子:

$start_time = strtotime('09:00:59');
$end_time = strtotime('09:01:00');
$diff = $start_time - $end_time;
echo 'Time 1: '.date('H:i:s', $start_time).'<br>';
echo 'Time 2: '.date('H:i:s', $end_time).'<br>';
if($diff){
    echo 'Diff: '.date('H:i:s', $diff);
}else{
    echo 'No Diff.';
}

输出:

Time 1: 09:00:59
Time 2: 09:01:00
Diff: 00:00:01