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

leo*_*per 0 php format time datetime

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

   $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; 
    }
Run Code Online (Sandbox Code Playgroud)

在上面的代码中, if $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
Run Code Online (Sandbox Code Playgroud)

或者:

  $start_time  = '11:00:00 PM';
  $end_time = '11:00:25 PM';

  $total = '00:00:25'; // 25seconds
Run Code Online (Sandbox Code Playgroud)

问候!

Nat*_*ivi 5

尝试diff函数

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

输出


00:25:00
Run Code Online (Sandbox Code Playgroud)