Reputation: 93
I have a time column $data['Time'] (hh:mm:ss)
and I need to convert it to minutes. How can I do this? When I am writing like this:
$avg = ($data['Kilometers'] / $data['Time']) * 60;
I have this error
Warning: Division by zero in ... on line ..
Upvotes: 6
Views: 31822
Reputation: 625
If hh:mm:ss is a string you can try this which is tested and it works:
$hour=substr($string, 0,1);// we get the first two values from the hh:mm:ss string
$hour=(int)$hour;
$hourtomin=$hour*60;// after we have the hour we multiply by 60 to get the min
$min=substr($string, 3,4);//now we do a substring 3 to 4 because we want to get only the min, and we don't want to get the : which is in position 2
$min=(int)$min;
$totalmin=$hourtomin+$min;// we just do a simple sum to calculate all the min
echo $totalmin;
Upvotes: 1
Reputation: 363
function hourMinute2Minutes($strHourMinute) {
$from = date('Y-m-d 00:00:00');
$to = date('Y-m-d '.$strHourMinute.':00');
$diff = strtotime($to) - strtotime($from);
$minutes = $diff / 60;
return (int) $minutes;
}
echo hourMinute2Minutes('01:30'); // returns 90
Upvotes: 0
Reputation: 4565
$time = explode(':', $data['Time']);
$minutes = ($time[0] * 60.0 + $time[1] * 1.0);
$avg = $minutes > 0 ? $data['Kilometers'] / $minutes : 'inf'; // if time stored is 0, then average is infinite.
Another way to convert the timestamp to minutes is,
$time = date('i', strtotime($data['Time']));
Upvotes: 8
Reputation: 1906
you can do this very simple way.
$minutes=$item['time_diff'];
$hours = sprintf('%02d',intdiv($minutes, 60)) .':'. ( sprintf('%02d',$minutes % 60));
return $hours;
Output will 09:10
Upvotes: 0
Reputation: 49
This is simple calculation use this one
$time='01:02:10';
$timesplit=explode(':',$time);
$min=($timesplit[0]*60)+($timesplit[1])+($timesplit[2]>30?1:0);
echo $min.' Min' // 62 Min
Upvotes: 2
Reputation: 768
You can use following function
<?php
function date2min ($hms) {
$fromTime = strtotime($hms);
$getMins = round(abs($fromTime) / 60,2);
return $getMins;
}
$date = date('H:i:s'); // $data['Time'] your desired time
$myResult = date2min($date);
and then use $myResult value according to your need.
?>
Upvotes: 1