2013-12-23 43 views
0

我使用這個網站很多,最後我遇到了一些我可以弄清楚的東西。我有一個時間返回的:PHP - 將時間轉換爲分數

"1hr 59min" 

我想要做的是將此值轉換爲分鐘(119)。

我已經嘗試了各種strtotime方法,但似乎沒有辦法。有任何想法嗎?

歡呼聲,

斯圖

+3

你就不能使用小時* 60 +分鐘的字符串? – sighol

+0

你的原始數據是什麼? –

+0

我打算建議嘗試'DateInterval :: createFromDateString(「1hr 59min」)',但似乎解析器不能識別「hr」。如果這是您的輸入數據,則您必須根據以下答案自行解析。 –

回答

0

如果它是你可以做

$onefiftynine = "1hr 59min"; 
$split  = explode(' ',$onefiftynine); 
$hour   = substr($split[0],0,strpos($split[0],'hr')); 
$min   = substr($split[1],0,strpos($split[1],'min')); 

echo $hour * 60 + $min; 
+0

完美!這工作,謝謝:) – darthvader666uk

0

如果使用正則表達式,然後使用的preg_replace():

$str = '1hr 59min'; 
$str = preg_replace("/(\d+)hr (\d+)min/e", "$1*60+$2", $str); 
// parsing the hour and minute, and doing calculation 

如果您的輸入可以只有小時或只有最小,然後添加以下兩行與上面:

$str = preg_replace("/(\d+)hr/e", "$1*60", $str); 
$str = preg_replace("/(\d+)min/", "$1", $str); 
0

我想你可以使用正則表達式:

function convertToSeconds($time) 
{ 
    $matches = array(); 
    if (preg_match('/^(\d+)hr (\d+)min$/', $time, $matches) { 
     return $matches[1]*60 + $matches[2]; 
    } 
}