Comunidad de diseño web y desarrollo en internet online

Calcular tiempo en horas laborales.

Citar            
MensajeEscrito el 16 Sep 2013 06:04 pm
(PHP)
Hola, llevo bastante tratando de solucionar un problema, pero ya he optado por esta medida desesperada.

Bueno mi problema es el siguiente. tengo 2 fechas (fecha y hora) y necesito obtener el tiempo (en el formato que sea) que transcurrio en estas dos fechas. teniendo en cuenta que se trabaja de Lunes a viernes de 8am a 6pm. Por ejemplo

fecha1 = "2013-09-16 15:00:00"
fecha2 = "2013-09-17 12:00:00"

lo que quiero es que me devuelva las horas transcurridas dentro del horario laboral. esto deberia dar 7 horas.

Les agradeceria profundamente si me pudieran ayudar

Por Tostingo

2 de clabLevel



Genero:Masculino  

Desarrollo Diseño Web

firefox
Citar            
MensajeEscrito el 16 Sep 2013 07:36 pm
Eso no son 7 horas, son 21 horas.

Para este tipo de cálculos, reduce todo a segundos. Por ejemplo, ambas fechas con sus horas a segundos, o lo que es lo mismo, a fecha epoc de Unix. Vas a tener dos números enteros, resta uno al otro y obtendrás los segundos de diferencia, eso tradúcelo a horas.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 16 Sep 2013 07:44 pm
Algo así:

Código PHP :

function EchoLog($texto){echo $texto."<br />";}


$fecha1 = strtotime("2013-09-16 15:00:00");
$fecha2 = strtotime("2013-09-17 12:00:00");

EchoLog("Fecha 1 : ".$fecha1);
EchoLog("Fecha 2 : ".$fecha2);

$dif = $fecha2 - $fecha1;

EchoLog("Diferencia : ".$dif);

$horas = floor($dif/3600);
$minutos = floor(($dif-($horas*3600))/60);
$segundos = $dif-($horas*3600)-($minutos*60);

EchoLog("Son: ".$horas."hs ".$minutos."m ".$segundos."s.");

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 16 Sep 2013 07:46 pm

DriverOp escribió:

Eso no son 7 horas, son 21 horas.

Para este tipo de cálculos, reduce todo a segundos. Por ejemplo, ambas fechas con sus horas a segundos, o lo que es lo mismo, a fecha epoc de Unix. Vas a tener dos números enteros, resta uno al otro y obtendrás los segundos de diferencia, eso tradúcelo a horas.


Creo que no entendiste, quiero el tiempo que pasa entre las dos fechas, pero siguiendo un horario laboral de 8 am a 6pm. Eso tendria que dar 7 horas. Pues de las 3pm a las 6pm (que es el horario de salida) don 3 horas. y de 8am (hora de entrada) a 12 pm son 4 horas. serian 7horas en total. en definitiva quiero saber cuanto me demoro en cierta tarea dentro de mi horario laboral.

Por Tostingo

2 de clabLevel



Genero:Masculino  

Desarrollo Diseño Web

firefox
Citar            
MensajeEscrito el 16 Sep 2013 07:51 pm
Pues calcula cuantos segundos son de horario no laborable y se lo restas a la diferencia.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.