Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/10/2014, 19:45
luisalberti
 
Fecha de Ingreso: septiembre-2011
Mensajes: 176
Antigüedad: 13 años, 1 mes
Puntos: 0
Calcular precio entre dos rangos

Hola, tengo unas dudas para calcular el precio por días,horas y minutos. Tengo un precio que es variable y que esta por hora, por ejemplo $precio = 20 por hora. Tendría que calcular el precio por el rango de dias.

2013-04-15 12:00:00
2013-05-31 12:00:00

$fecha1 = new DateTime("2010-07-28 01:15:52");
$fecha2 = new DateTime("2012-11-30 02:33:45");
$fecha = $fecha1->diff($fecha2);
printf('%d años, %d meses, %d días, %d horas, %d minutos', $fecha->y, $fecha->m, $fecha->d, $fecha->h, $fecha->i);
En este caso imprime: 2 años, 4 meses, 2 días, 1 horas, 17 minutos

Así obtendría los los dias horas y minutos.


El caso es que ahora quiero hacer el calculo por el precio, mi primera idea es hacerlo por separado y luego sumarlo.
$precio = 20;


############Primero los días:#######################
$precio_por_dia = $precio * 24; // 20€ * 24 = 480€
$precio_total_dias = $precio_por_dia * $fecha->d; // 480€ * 2 = 960€

############Segundo las horas:#####################

$precio_por_total_horas = $precio * $fecha->h; // 20€ * 1 = 20€

############Tercero los minutos:#####################

$precio_por_minuto = $precio / 60 ; 0,33 €

$precio_total_minuto = $precio_por_minuto * $fecha->i ; 0,33€ * 17 = 5,66€


$total = $precio_total_dias + $precio_por_total_horas + $precio_total_minuto ;// 960 + 20 + 5,66€ = 985,66 ;

Mi duda es esto estaria bien así o me estoy errollando, alguna idea seria de mucha ayuda gracias.


Un saludo muchas gracias

Última edición por luisalberti; 08/10/2014 a las 01:03