Cita:
Iniciado por luisalberti Hola Cuasatar, muchas gracias esa era la duda.
Pues no dejo de picarme la duda de mirar la diferencia y lo realice de estas dos formas:
Código PHP:
$fechaInicial = "2012-07-28 01:15:52";
$fechaFinal = "2012-07-30 02:33:45";
$segundos = strtotime($fechaFinal) - strtotime($fechaInicial);
print $segundos;
$precioSegundo=20/3600;
echo '<br/>';
print $precioSegundo;
$precioTotal=$segundos*$precioSegundo;
echo '<br/>';
print $precioTotal;
echo '<br/>';
$fecha1 = new DateTime("2012-07-28 01:15:52");
$fecha2 = new DateTime("2012-07-30 02:33:45");
$fecha = $fecha1->diff($fecha2);
printf('%d años, %d meses, %d días, %d horas, %d minutos, %d segundos', $fecha->y, $fecha->m, $fecha->d, $fecha->h, $fecha->i,$fecha->s );
$dia=24*3600*$fecha->d;
$hora=3600*$fecha->h;
$minutos=60*$fecha->i;
$segundos=$fecha->s;
$totalsegundos=$dia+$hora+$minutos+$segundos;
echo '<br/>';
print $totalsegundos;
$precioTotal2=$totalsegundos*$precioSegundo;
echo '<br/>';
print $precioTotal2;
y los resultados en pantalla son los siguientes:
Cita: 177473
0.0055555555555556
985.96111111111
0 años, 0 meses, 2 días, 1 horas, 17 minutos, 53 segundos
177473
985.96111111111
Como en tu ejemplo inicial tenias diferencia de años y meses me tome la molestia de solo dejarlo en días, horas, minutos y segundos pero en el sentido estricto de la palabra tambien
necesitas los años y meses para realizar el calculo, cosa que no vi que realizaras en tus datos, por eso considero que todo se puede calcular directamente en segundos y así evitarse crear formulas para meses y años.
La diferencia en el precio como se puede observar radica en el redondeo que se hace de las cifras, entre mas redondeado el valor saldra diferente tal y como se observa en el ejemplo.
Cualquier otro punto de vista es bienvenido