PHP - Redondear Hora segun imagen

 
Vista:
Imágen de perfil de Eduardo
Val: 165
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Redondear Hora segun imagen

Publicado por Eduardo (103 intervenciones) el 29/11/2021 23:12:21
hola a todos.. espero esten todos super bien.... me podrian ayudar con esto agradeceria enormemente....

Que funcion le pongo a mi linea de codigo para que redondee la hora de acuerdo a esta imagen


hora


por lo que por ejemplo

si son las 5:00 a 5:15 lo redondea a 5:00
si son las 5:16 a 5:30 lo deja a 5:30
si son las 5:31 a 5:45 lo deja a 5:30
si son las 5:46 a 6:00 lo pone a 6:00

y asi susesivamente

he usado esta funcion pero solo me redondea unos minutos y normal pero no logro adapparlo a lo que necesito

1
2
3
4
5
6
7
8
9
function round_time( $time, $round_to_minutes = 5, $type = 'auto' ) {
	$round = array( 'auto' => 'round', 'up' => 'ceil', 'down' => 'floor' );
	$round = @$round[ $type ] ? $round[ $type ] : 'round';
	$seconds = $round_to_minutes * 60;
	if(substr_count($time,":")==2)
		return date( 'H:i:s', $round( strtotime( $time ) / $seconds ) * $seconds );
	else
		return date( 'H:i', $round( strtotime( $time ) / $seconds ) * $seconds );
}


1
echo "<td width=\"49\"><center><font face=\"verdana\">". round_time(date ( 'H:i' ,  strtotime ( '+2 hour' , strtotime ($row["horaextra"])))) ;

Graciassss
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 Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Redondear Hora segun imagen

Publicado por Kathyu (714 intervenciones) el 29/11/2021 23:17:56
No he analizado bien todo el contexto pero y si saca los minutos y los divide con un IF???


Si minutos esta entre 01 y 15 retorno a la hora inicial con 00 minutos => 05:00
Si minutos esta entre 16 y 45 retorno a la hora inicial con 30 minutos => 05:30
Si minutos esta entre 46 y 49 retorno a la hora inicial + 1 hora => 06:00

Recuerde, no se trata de hacer tanta cosa, se trata de hacerlo bien y si es mas rápido, mejor
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 Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Redondear Hora segun imagen

Publicado por Kathyu (714 intervenciones) el 29/11/2021 23:19:03
Odio que ya no se puedan editar las respuestas, en la ultima líneas es 46 y 59
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 Eduardo
Val: 165
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Redondear Hora segun imagen

Publicado por Eduardo (103 intervenciones) el 30/11/2021 00:29:51
Mil gracias por ti respuesta me ayudarias por fa en el codigo pues no se donde poner las condiciones que me dices
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 Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Redondear Hora segun imagen

Publicado por Kathyu (714 intervenciones) el 30/11/2021 00:55:41
Ya te di la lógica? Ya te di la parte principal, los IF.

Sabes programar? es una tarea? Que has hecho? Que errores te da?

Deja que vea tu interés, tu código y con gusto te ayudo, pero primero ayúdate tu mismo
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 Eduardo
Val: 165
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Redondear Hora segun imagen

Publicado por Eduardo (103 intervenciones) el 30/11/2021 00:57:57
Pues aun estoy aprendiendo y de cada uno de ustedes he aprendido algo.. ya cosas muy complicadas.. y pues la funcion la adapte de un ejemplo que vi en otro post
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 Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Redondear Hora segun imagen

Publicado por Kathyu (714 intervenciones) el 30/11/2021 01:18:53
aaaaaaaa ok.

Igual no suelo dar códigos terminados a no ser que vea el interés y el código del otro. Tal cual lo dije en la primer respuesta

- Sacas los minutos con la función de extraer partes de un string de hora
- Luego los haces pasar por una serie de IF, yo usaría un CASE ya que estarás verificando la misma variable
- Por cada vuela, o iteración que hagas, verificas si los minutos, extraídos en el primer paso, están entre las condiciones que tu quieres, y las cuales ya puse en la primer respuesta.
- Independientemente si usas IF o mejor aun CASE, el programa deberá salir del bucle si la condición se cumple y por lógica deberá poner la hora según convenga.

Vuelvo y repito, muéstrame lo que hagas y te diré como va la cosa. Por el momento debo hacer algunas cosas, pon lo que puedas y en unas cuantas horas volveré y según vea tu avance te ayudare en todo lo que necesites.

Ánimos, todos aprendemos igual...
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 Eduardo
Val: 165
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Redondear Hora segun imagen

Publicado por Eduardo (103 intervenciones) el 03/12/2021 19:36:12
hola como estas, espero que muy bien, gracias pro tu ayuda... como veras lo hice asi, pero tengo un problema como hago para en la ultima condicion pase a la siguiente hora es loq ue me falra..... mil graciasssss (linea 9)

1
2
3
4
5
6
7
8
9
10
11
12
13
$horaf=	date ( 'H' ,  strtotime ( '+2 hour' , strtotime ($row["horaextra"])));
	$minut=	date ( 'i' ,  strtotime ($row["horaextra"]));
	if($minut <="15"){
	$minutt="00";
		}else if($minut <="45"){
	$minutt="30";
		}else if($minut <="59"){
	$minutt=="00";
	$horaf=strtotime ( '+1 hour' , strtotime ($horaf));
		}
	//echo "<td width=\"49\"><center><font face=\"verdana\">".$horaf.":".$minutt.";
	echo "<td width=\"49\"><center><font face=\"verdana\">".$horaf.":".$minutt."</font></center></td>";
		}
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 Eduardo
Val: 165
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Redondear Hora segun imagen

Publicado por Eduardo (103 intervenciones) el 03/12/2021 20:06:59
no me resulta cuando es por ejemplo 00:45
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 Eduardo
Val: 165
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Redondear Hora segun imagen

Publicado por Eduardo (103 intervenciones) el 03/12/2021 21:05:37
al parecer lo logre efectuar con esto...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$horaf=	date ( 'H' ,  strtotime ( '+2 hour' , strtotime ($row["horaextra"])));
	$minut=	date ( 'i' ,  strtotime ($row["horaextra"]));
		}
if($horaf =="00"){
 $horaf	="00";
}else{
	$horaf=$horaf;
}
if($minut <="15"){
	$minutt="00";
		}else if($minut <="45"){
	$minutt="30";
		}else if($minut <="59"){
	$minutt=="00";
	$horaf=	date ( 'H' ,  strtotime ( '+2 hour' , strtotime ($row["horaextra"])));
		}
	//echo "<td width=\"49\"><center><font face=\"verdana\">".$horaf.":".$minutt.";
	echo "<td width=\"49\"><center><font face=\"verdana\">".$horaf.":".$minutt."</font></center></td>";
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