Hi

I am trying to get the number of hours and minutes between
two time time stamps.

The expected results should be 1:59 (h:mm) instead I am getting 1:58 (h:mm).
What is wrong with my approach?

Is it also possible to use a built in php function so I don't have to
divide by 60 to convert to hours and minutes?

<?

$end_time = "2008-09-05 20:59:13";
$start_time = "2008-09-05 19:00:16";

$end = date("h:i:s",strtotime($end_time));
$start = date("h:i:s",strtotime($start_time));
$diff = strtotime($end)  - strtotime($start);

//convert to min and sec
$convert_min = $diff/60;
$convert_sec = $diff % 60;//seconds

//convert to hours and min
$convert_hr = floor($convert_min/60);//hours
$remainder = floor($convert_min % 60);//minutes

$total_visit =  $convert_hr.":".$remainder; 

?>

Edited 3 Years Ago by mike_2000_17: Fixed formatting

I am getting the correct hours and minutes by removing the seconds.
E.g. date("h:i",strtotime($end_time)).
I am still open to a more efficient way to accomplish this task.

<?

$end_time = "2008-09-05 20:59:13";
$start_time = "2008-09-05 19:00:16";

$end = date("h:i",strtotime($end_time));
$start = date("h:i",strtotime($start_time));
$diff = strtotime($end)  - strtotime($start);

//convert to min and sec
$convert_min = $diff/60;
$convert_sec = $diff % 60;//seconds

//convert to hours and min
$convert_hr = floor($convert_min/60);//hours
$remainder = floor($convert_min % 60);//minutes

$total_visit =  $convert_hr.":".$remainder; 

?>

Edited 3 Years Ago by mike_2000_17: Fixed formatting

This article has been dead for over six months. Start a new discussion instead.