2012-09-12 194 views
0

如何將分鐘轉換爲小時和分鐘?例如。將分鐘轉換爲小時和分鐘

$dt = new DateTime(); 
$currDate = date_format($dt, 'Y-m-d'); 

$startMinutes = 939; 

$startT = $currDate . " " . gmdate("H:i", $startMinutes); 

此代碼返回類似'2012-09-12 00:15'而不是15:...爲什麼?

+0

的可能重複[如何計算小時:從總分鐘數分鐘(http://stackoverflow.com/questions/7931935/how-to-從總分鐘計算小時分鐘) – nickb

+0

是的,他想忘記的只是乘以60分鐘。你可以在下面看到我的答案。 – Pitchinnate

+0

你到底想把939轉換成什麼? –

回答

7

日期和gmdate函數都以秒爲單位輸入而不是分鐘。所以你所要做的就是將你的開始分鐘乘以60來讓你的答案奏效。

$startT = $currDate . " " . gmdate("H:i", ($startMinutes * 60)); 
+0

不僅僅需要幾秒鐘,它們需要自1970年1月1日(該時代)以來的秒數。所以,這是有效的,因爲你發送了一個'56340'的時間戳,即'1970年1月1日15:39 GMT'。 –

+0

@火箭正確我同意但基於他所說的他正在尋找15:..如果您使用我的答案,您將從gmdate(「H:i」,(939 * 60))得到的回覆;是15:39,所以我就這麼認爲這就是他想要的。 – Pitchinnate

+0

是的,它輸出'15:39',但我認爲OP希望將939分鐘轉換爲15小時和39分鐘。 –

0

試試這個..

$d = floor ($startMinutes/1440); 
$h = floor (($startMinutes - $d * 1440)/60); 
$m = $startMinutes - ($d * 1440) - ($h * 60); 

echo "{$startMinutes}min converts to {$d}d {$h}h {$m}m"; 

您應該能夠從那裏拼湊吧..

6

類似如下的公式應該工作:

$hours = floor($minutes/60); //round down to nearest minute. 
$minutes = $minutes % 60; 
+1

快速和穩固的解決方案,也需要24小時以上的考慮。好! – Liquinaut

+1

這個答案太好了,只有一個單一的無菌upvote。所以我打破了規則說:謝謝你活着發表如此純粹的優雅。 – elbowlobstercowstand

1

的非常快速的方式這樣做,這應該工作:

echo date('H:i', strtotime($startMinutes.' minutes')); 
1
$dt = new DateTime('now'); 
$dt->modify('+939 minutes'); 
echo $dt->format('Y-m-d H:i'); 
0

嘗試這個

function hour_min($minutes){ 
     if($minutes == 0){return '';}else{ 
     $hours = round(intval($minutes/60) , 2); //round down to nearest minute. 
     $minutes = $minutes % 60; return sprintf("%02d", $hours).':'.sprintf("%02d", $minutes); 
     } 
} 
echo hour_min(720); // 12:00 
echo hour_min(480); // 08:00 
相關問題