es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Verifique cuántos minutos cruzaron en un rango de tiempo.

¿Cómo obtengo la cantidad de minutos trabajados de un rango de tiempo cruzado?

Por ejemplo:

$begindate = "00:00";
$enddate = "08:00";
if(isSaturday($begindate)){
   //00:00 - 06:00 || 149%
   if(strtotime($begintime) >= strtotime("00:00") and strtotime($begintime) <= strtotime("06:00")){
      $weekend149 = true;
   }
}

El código actualmente muestra que la persona ha trabajado entre esas horas, pero quiero obtener la cantidad específica que ha trabajado DENTRO de ese rango de tiempo solamente.

Entonces, si trabajó desde las 03:00 hasta las 08:00, quiero tener una variable separada que indique 3 horas o 180 minutos.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para obtener la cantidad de minutos trabajados de un rango de tiempo cruzado, puedes utilizar la clase DateTime en PHP. Primero, debes convertir tus cadenas de tiempo en objetos DateTime:

    $beginDateTime = new DateTime($begindate);
    $endDateTime = new DateTime($enddate);
    

    Luego, puedes utilizar el método diff() para calcular la diferencia entre los dos objetos DateTime:

    $interval = $beginDateTime->diff($endDateTime);
    

    Esto te dará un objeto DateInterval que contiene la diferencia entre los dos tiempos en años, meses, días, horas, minutos y segundos. Para obtener solo los minutos, puedes utilizar el siguiente código:

    $minutes = $interval->i + ($interval->h * 60);
    

    Esto te dará el número de minutos entre los dos tiempos. En el ejemplo que proporcionaste, si la persona trabajó desde las 03:00 hasta las 08:00, este código te dará 300 (5 horas * 60 minutos = 300).

Comments are closed.