我有一个名为$final_time_saving
的变量,它只是一个代表分钟数的数字,例如250。
如何使用PHP将这些分钟数转换为小时和分钟,并以以下格式显示:
4 小时 10 分钟
<?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
'%d:%02d'
,因为像“6:1”这样的字符串与“6:01”相比没有太多意义。 - user377628echo date('H:i', mktime(0,257));
date
函数。请修正内容,使其更易懂,但不要改变原意。 - decezegmmktime
会返回本地偏移时间。 - Alastair$hours = floor($final_time_saving / 60);
$minutes = $final_time_saving % 60;
12.99
这样的形式,这个程序就会出错。 - Ray@Martin Bean的回答是完全正确的,但在我看来,它需要进行一些重构,以符合普通用户对网站(网络系统)的期望。
我认为当分钟数少于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);
}
echo sprintf('%02d', 2); // 这会输出“02”
- Dave Hollingworth$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分钟
非常抱歉提及一个旧话题,但我经常使用这些答案中的一些代码,今天我告诉自己可以不用窃取别人的代码来完成它。我很惊讶这是多么容易。我想要的是将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";
}
我使用短变量名是因为我会经常使用该函数,而且我很懒。
gmdate('H:i', $numberOfSeconds * 60)
- Erlang Parasugmdate('H:i', 9999 * 60) => "22:39" gmdate('H:i', 99999 * 60) => "10:39"
如果你想要做类似的事情:
echo date('G \h\o\u\r\s i \m\i\n\u\t\e\s', mktime(0, 90)); //will return 1 hours 30 minutes
echo date('G \j\a\m i \m\e\n\i\t', mktime(0, 90)); //will return 1 jam 30 menit
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