PHP - redondear minutos en php

   
Vista:

redondear minutos en php

Publicado por wilmer jocsan455@gmail.com (6 intervenciones) el 07/05/2017 03:42:10
amigos estoy creando un proyecto de registro y control de clases y necesito redondiar los minutos por ejemplo si se comenzo a las 6:00 y termina a las 9:45 uiero que se redondee a la 10:00
esto tengo de codigo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
date_default_timezone_set('America/Caracas');
$fecha= date ("j/n/Y");
$hora=date("H:i:s");
echo $fecha.' '.$hora.'<br>';
 
 
if (date("i")>=30) {
	$horamas30=date("i")+30;
	echo "$horamas30";}
	else
	{
		$a=date("i");
	echo $a;
	}
?>
pero me arroja 9:75 ya que no se como poner que no pase de 60
ya lo solucione solo me faltaba un poquito de logica
si quieren la solucion avisenme
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

redondear minutos en php

Publicado por xve (6548 intervenciones) el 07/05/2017 09:35:14
Hola Wilmer, puedes compartir como lo has solucionado?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

redondear minutos en php

Publicado por wilmer (6 intervenciones) el 07/05/2017 22:04:16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
date_default_timezone_set('America/Caracas');
$fecha= date ("j/n/Y");
$hora=date("H:i:s");
 
 
	echo "<center><h1>$hora<br></h1>";
 
if (date("i")>=30) {
	$fecha= date ("j/n/Y");
	$hora=date("H")+1;
	$minuto=':00:';
	$segundo='00';
	$horaredonda=$hora.$minuto.$segundo;
 
 
	echo "<h1>$horaredonda<br></h1></center>";}
	else
	{
	$fecha= date ("j/n/Y");
	$hora=date("H");
	$minuto=':00:';
	$segundo='00';
	$horaredonda=$hora.$minuto.$segundo;
 
 
	echo "<h1>$horaredonda<br></h1></center>";
	}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip

redondear minutos en php

Publicado por kip (862 intervenciones) el 07/05/2017 11:50:01
Hola, se que tienes la solución, pero he creado una función para lo que buscas, si deseas puedes probarla:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function redondear_mins($fecha, $mins, $format = 'Y-m-d H:i:s') {
    if (is_numeric($fecha)) {
        $fecha = new DateTime("@{$fecha}");
    } else {
        $fecha = ($fecha instanceof DateTime) ? $fecha : new DateTime($fecha);
    }
    $segs_fecha = ($fecha->format('i') * 60) + $fecha->format('s');
    $segs = $mins * 60;
    $segs_dif = (ceil(($segs_fecha / $segs)) * $segs) - $segs_fecha;
    if($segs_dif < 1) {
        $fecha->modify("+{$segs} seconds");
    } else {
        $fecha->modify("+{$segs_dif} seconds");
    }
    return $fecha->format($format);
}

Puedes enviarle los mins a redondear la fecha y el formato que desees retornar esta:

Un ejemplo enviandole el instante actual y un formato especifico a retornar la fecha
1
2
echo redondear_mins(time(), 15, 'j/n/Y H:i');
// 7/5/2017 10:00

1
2
echo redondear_mins('2017-10-05 09:36:45', 15);
// 2017-10-05 09:45:00

Creo que este es tu caso
1
2
echo redondear_mins('2017-10-05 09:36:00', 30);
// 2017-10-05 10:00:00 

Ten en cuenta que esta funcion solo redondea hacia arriba segun tu ejemplo.

Nos cuentas si la pruebas y te sirve.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar

redondear minutos en php

Publicado por wilmer (6 intervenciones) el 09/05/2017 04:10:32
gracias amigo ahora lo que falta es hacer que si es menor a 30 lo redondee a 0 el mio estaba equivocado por que si pasaban las 23:59 quedaba en elmismo dia y el dia debe cambiar al siguiente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

redondear minutos en php

Publicado por wilmer (6 intervenciones) el 09/05/2017 04:13:50
y que es es del 15 y el 30?
echo redondear_mins('2017-10-05 09:36:45', 15);
echo redondear_mins('2017-10-05 09:36:45', 30);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad