我有一个称为$final_time_saving
分钟的变量,例如250分钟。
如何使用以下格式的PHP将分钟数转换为小时数和分钟数:
4 hours 10 minutes
我有一个称为$final_time_saving
分钟的变量,例如250分钟。
如何使用以下格式的PHP将分钟数转换为小时数和分钟数:
4 hours 10 minutes
Answers:
<?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));
date
函数。
gmmktime
将返回本地偏移时间。
@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); // this echos "02"
很抱歉提出一个老话题,但是我经常从其中一个答案中使用一些代码,今天我告诉自己,我可以在不窃取别人代码的情况下做到这一点。我很惊讶这有多么容易。我想要的是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";
}
我使用短变量名,因为我将大量使用该函数,而且我很懒。
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
感谢@Martin_Bean和@Mihail Velikov的答案。我只是拿了他们的答案片段,并添加了一些修改以进行检查,
如果仅“仅小时”可用且“分钟”值为空,则它将仅显示小时。
如果仅“分钟”可用且小时值为空,则相同,则仅显示分钟。
如果分钟= 60,则它将显示为1小时。如果分钟= 1,则相同,输出将为1分钟。
欢迎进行更改和编辑。谢谢。这是代码。
函数convertToHoursMins($ time){
$hours = floor($time / 60);
$minutes = ($time % 60);
if($minutes == 0){
if($hours == 1){
$output_format = '%02d hour ';
}else{
$output_format = '%02d hours ';
}
$hoursToMinutes = sprintf($output_format, $hours);
}else if($hours == 0){
if ($minutes < 10) {
$minutes = '0' . $minutes;
}
if($minutes == 1){
$output_format = ' %02d minute ';
}else{
$output_format = ' %02d minutes ';
}
$hoursToMinutes = sprintf($output_format, $minutes);
}else {
if($hours == 1){
$output_format = '%02d hour %02d minutes';
}else{
$output_format = '%02d hours %02d minutes';
}
$hoursToMinutes = sprintf($output_format, $hours, $minutes);
}
return $hoursToMinutes;
}`
$m = 250;
$extraIntH = intval($m/60);
$extraIntHs = ($m/60); // float value
$whole = floor($extraIntHs); // return int value 1
$fraction = $extraIntHs - $whole; // Total - int = . decimal value
$extraIntHss = ($fraction*60);
$TotalHoursAndMinutesString = $extraIntH."h ".$extraIntHss."m";
检查此链接以获得更好的解决方案。点击这里
$minutes=$item['time_diff'];
$hours = sprintf('%02d',intdiv($minutes, 60)) .':'. ( sprintf('%02d',$minutes % 60));