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

我有一个名为$final_time_saving的variables,仅仅是几分钟,例如250。

如何使用这种格式的PHP将这个分钟数转换成小时和分钟:

4 hours 10 minutes

 <?php function convertToHoursMins($time, $format = '%02d:%02d') { if ($time < 1) { return; } $hours = floor($time / 60); $minutes = ($time % 60); return sprintf($format, $hours, $minutes); } echo convertToHoursMins(250, '%02d hours %02d minutes'); // should output 4 hours 17 minutes 
 echo date('H:i', mktime(0,257)); 
 $hours = floor($final_time_saving / 60); $minutes = $final_time_saving % 60; 

@Martin Bean的答案是完全正确的,但是在我看来,它需要进行一些重构,以适应常规用户对网站(Web系统)的期望。
我认为当分钟数低于10时,必须加上前导零。
例如:10:01,而不是10:1

我改变了代码,接受$time = 0因为0:00比24:00更好。

还有一件事 – 当$time大于1439时(23:59而下一个值只是0:00),没有任何情况。

 function convertToHoursMins($time, $format = '%d:%s') { settype($time, 'integer'); if ($time < 0 || $time >= 1440) { return; } $hours = floor($time/60); $minutes = $time%60; if ($minutes < 10) { $minutes = '0' . $minutes; } return sprintf($format, $hours, $minutes); } 

您可以使用DateTime扩展实现此function,这也适用于大于一天( >= 1440 )的分钟数:

 $minutes = 250; $zero = new DateTime('@0'); $offset = new DateTime('@' . $minutes * 60); $diff = $zero->diff($offset); echo $diff->format('%a Days, %h Hours, %i Minutes'); 

演示

对不起,提出了一个老话题,但我使用了这些答案中的一些代码,今天我告诉自己我可以做到这一点,而不会窃取别人的代码。 我很惊讶这是多么容易。 我想要的是510分钟才能返回08:30,所以这就是代码所做的。

 function tm($nm, $lZ = true){ //tm = to military (time), lZ = leading zero (if true it returns 510 as 08:30, if false 8:30 $mins = $nm % 60; if($mins == 0) $mins = "0$mins"; //adds a zero, so it doesn't return 08:0, but 08:00 $hour = floor($nm / 60); if($lZ){ if($hour < 10) return "0$hour:$mins"; } return "$hour:$mins"; } 

我使用简短的variables名,因为我打算使用这个函数,而且我很懒。

 $t = 250; $h = floor($t/60) ? floor($t/60) .' hours' : ''; $m = $t%60 ? $t%60 .' minutes' : ''; echo $h && $m ? $h.' and '.$m : $h.$m; 

4小时10分钟

 function hour_min($minutes){// Total if($minutes <= 0) return '00 Hours 00 Minutes'; else return sprintf("%02d",floor($minutes / 60)).' Hours '.sprintf("%02d",str_pad(($minutes % 60), 2, "0", STR_PAD_LEFT)). " Minutes"; } echo hour_min(250); //Function Call will return value : 04 Hours 10 Minutes 

最简单的方法是:

  gmdate('H:i', $numberOfSeconds * 60) 

以防万一你想要这样的东西:

 echo date('G \h\o\u\r\si \m\i\n\u\t\e\s', mktime(0, 90)); //will return 1 hours 30 minutes echo date('G \j\a\mi \m\e\n\i\t', mktime(0, 90)); //will return 1 jam 30 menit