segundos numeros numero minutos horas enteros entero convertir conversiones php time

numeros - Convierta el número de minutos en horas y minutos con PHP



convertir segundos a horas minutos y segundos excel (12)

Tengo una variable llamada $final_time_saving que es solo una cantidad de minutos, 250 por ejemplo.

¿Cómo puedo convertir esa cantidad de minutos en horas y minutos usando PHP en este formato?

4 hours 10 minutes


En caso de que quieras algo como:

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


Gracias a @Martin_Bean y @Mihail Velikov responde. Acabo de tomar su fragmento de respuesta y agregué algunas modificaciones para verificar,

  1. Si solo están disponibles las horas solo y el valor de los minutos está vacío, solo se mostrarán horas.

  2. Lo mismo si solo los minutos solo están disponibles y el valor de las horas está vacío, entonces solo se mostrarán los minutos.

  3. Si los minutos = 60, se mostrará como 1 hora. Lo mismo si el minuto = 1, la salida será de 1 minuto.

Los cambios y ediciones son bienvenidos. Gracias. Aquí está el código.

función convertToHoursMins ($ tiempo) {

$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; }`


La forma más fácil es:

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


La respuesta de @Martin Bean es perfectamente correcta, pero desde mi punto de vista necesita algunas refactorizaciones que se ajusten a lo que un usuario normal esperaría de un sitio web (sistema web).
Creo que cuando los minutos están por debajo de 10, se debe agregar un cero a la izquierda.
ex: 10:01, no 10: 1

Cambié el código para aceptar $time = 0 ya que 0:00 es mejor que 24:00.

Una cosa más: no hay ningún caso cuando $time es más grande que 1439 - que es 23:59 y el siguiente valor es simplemente 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); }


Perdón por mencionar un tema antiguo, pero utilicé mucho el código de una de estas respuestas, y hoy me dije que podía hacerlo sin robar el código de alguien. Me sorprendió lo fácil que fue. Lo que quería es 510 minutos para volver como 08:30, así que esto es lo que hace el código.

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"; }

Uso nombres cortos de variables porque voy a usar mucho la función, y soy flojo.


Puede lograr esto con la extensión DateTime , que también funcionará para una cantidad de minutos mayor a un día ( >= 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'');

demo


$hours = floor($final_time_saving / 60); $minutes = $final_time_saving % 60;


$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";


$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 horas y 10 minutos


<?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));


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