使用PHP将小时和分钟转换为分钟

问题描述:

我使用Google Maps API获取两点之间的持续时间。该API以小时和分钟为单位给出持续时间。所以我希望它只用PHP代码转换成分钟。有没有解决方案?使用PHP将小时和分钟转换为分钟

例:2小时10分钟(应该给130分钟作为输出)

+0

可能的重复将hh:mm:ss转换为分钟](https://*.com/questions/24975664/how-to-convert-hhmmss-to-minutes) – Tirolel

+1

将小时数乘以60,然后将其添加到分钟数。 –

尝试是这样的

// Transform hours like "1:45" into the total number of minutes, "105". 
function hoursToMinutes($hours) 
{ 
    $minutes = 0; 
    if (strpos($hours, ':') !== false) 
    { 
     // Split hours and minutes. 
     list($hours, $minutes) = explode(':', $hours); 
    } 
    return $hours * 60 + $minutes; 
} 

// Transform minutes like "105" into hours like "1:45". 
function minutesToHours($minutes) 
{ 
    $hours = (int)($minutes/60); 
    $minutes -= $hours * 60; 
    return sprintf("%d:%02.0f", $hours, $minutes); 
} 

源:laserlight - >http://board.phpbuilder.com/showthread.php?10342598-quot-Convert-quot-hours-minutes-quot-to-quot-total_minutes-quot-and-back-quot

+2

请称作者, http://board.phpbuilder.com/showthread.php?10342598-quot-Convert-quot-hours-minutes-quot-to-quot-total_minutes-quot-and-back-quot – Tirolel

感谢您的帮助球员,我发现了另一种解决方案...这适用于我

$duration = "What Ever the time (2 hours 10 mins)" 

$split = preg_split("/[^\w]*([\s]+[^\w]*|$)/", $duration, -1, PREG_SPLIT_NO_EMPTY); 

    if ($split[0] >= 1 && $split[0] < 60 && $split[1] == 'min'){ 
     $duration = $split[0]; 
    } 
    elseif ($split[0] >= 1 && $split[0] < 60 && $split[1] == 'mins'){ 
     $duration = $split[0]; 
    } 
    else{ 
     $durationHours = $split[0]*60; 
     $durationMin = $split[2]; 

     $duration = $durationHours + $durationMin; 
     echo $duration; 
    }