Foros del Web » Programando para Internet » PHP »

Suma de horas

Estas en el tema de Suma de horas en el foro de PHP en Foros del Web. Buenas, este es mi problema tengo tres tablas 1º Horas Fecha (fecha del desplazamiento) desplazamiento (tiene código "t1", "t2", etc...) Horas ( en la misma ...
  #1 (permalink)  
Antiguo 21/04/2016, 16:34
 
Fecha de Ingreso: abril-2016
Mensajes: 90
Antigüedad: 8 años
Puntos: 1
Suma de horas

Buenas, este es mi problema tengo tres tablas
1º Horas
Fecha (fecha del desplazamiento)
desplazamiento (tiene código "t1", "t2", etc...)
Horas ( en la misma fecha puede haber varias horas "1:00" a "t1" , "2:00" a "t2" etc...

2º Tarifas
Precio ( precio para cada hora)
id.desplazamiento ( cod "1", "2", etc...)

3º Desplazamiento
id.desplazamiento (cod igual a la tabla Tarifas)
desplazamiento ( cod igual a la tabla Horas)

con esto lo que pretendo es sacar en un formulario la suma de horas por día y el coste total

gracias de antemano.
un saludo
  #2 (permalink)  
Antiguo 21/04/2016, 19:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Suma de horas

¿Y eso es un problema de programación en PHP o un problema de cómo generar la consulta de SQL?

¿O exactamente cual es el problema con lo que expones?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 21/04/2016, 23:46
 
Fecha de Ingreso: abril-2016
Mensajes: 90
Antigüedad: 8 años
Puntos: 1
Respuesta: Suma de horas

Gracias por la respuesta, tienes razón podría haber empezado por averiguar la sentencia sql , pero al final terminaría aquí para encajar esa sentencia en php, gracias
  #4 (permalink)  
Antiguo 22/04/2016, 10:18
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Suma de horas

¿Entonces cuál es el problema en sí?

Pd. Ya que no entiendo que es un desplazamiento en tu tabla, y si averiguas la sentencia SQL la metes en php tal cuál.
  #5 (permalink)  
Antiguo 22/04/2016, 16:44
 
Fecha de Ingreso: abril-2016
Mensajes: 90
Antigüedad: 8 años
Puntos: 1
Respuesta: Suma de horas

Buenas, ya tengo la consulta, pero ahora tengo otro problema, debo multiplicar horas por importe, pero tengo las horas en hh:mm y necesitaba pasarlas a decimal; a ver si alguien me puede iluminar un poco

tengo lo siguiente

$var = date('d-m-Y',strtotime($resulta[0]));//cambia el orden de ver la fecha
$var2=$resulta[1];
$var3=$imp;
$var4=$resulta[1]*$var3;

"resulta[1]= contiene las horas en formato: hh:mm:ss
$imp es el precio

Gracias
  #6 (permalink)  
Antiguo 23/04/2016, 00:32
 
Fecha de Ingreso: septiembre-2008
Mensajes: 350
Antigüedad: 15 años, 7 meses
Puntos: 31
Respuesta: Suma de horas

puedes intentarlo con: DateInterval class php
algo como esto:
Código PHP:
<?php 
$theDate 
date("Y-m-d h:i:s");
$date1 = new DateTime("2016-04-07 07:42:03");// compara fecha 1  
$date2 = new DateTime("2016-04-08 09:42:03");//con feche 2
$diff $date2->diff($date1); //el Object para Obtener el intervalo de las fechas
echo $diff->format('Años: %Y Meses %m Dias: %d Horas: %h Minutos: %i Segundos: %s');
$minutos round(abs($diff->format('%d') * 24 $diff->format('%h') * 60) + $diff->format('%i'));
echo 
'<br />',$minutos;// = 1560
$horaspre $minutos/60*2.25;//1560 minutos divididos por 60 minutos = 26 horas precio por hora 2.25 * 26 = 58.50
echo '<br />',$horaspre;// = 58.5
?>
o tambien puedes usar:
Código PHP:

$horaspre 
sprintf("%01.2f"$horaspre);// 00.00
echo '<br />',$horaspre;// 58.50 
solo una cosa que cada 59/60 Retorna a 00 y tambien 23/24 Retorna a 00
osea que 59 minutos se convierte en 1 hora pero minutos retorna a 00, 01...
__________________
╬-----╬
║☺₧☻║
╬-----╬

Última edición por thezzin; 23/04/2016 a las 00:54

Etiquetas: fecha, formulario, horas, suma, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:17.