Hola a todos, estoy tratando de calcular el tiempo de trabajo total para el personal, cuando el personal ingresa la hora de inicio y la hora de finalización, necesito mostrar el tiempo de trabajo total en JS

Estoy tratando de hacer eso en el siguiente código y no funciona.

$(document).ready(function() {
  var $time1 = $("#start");
  var $time2 = $("#end");
  var $diff = $("#totalTime");

  function updateHours() {

    var dtStart = new Date("10/16/2017" + $time1.val());
    var dtEnd = new Date("10/16/2017" + $time2.val());
    var dtEndafterlunch = new Date("10/16/2017" + $time5.val());


    var diff = (dtEnd - dtStart);

    $diff.val(diff / 1000);
  }
  $time1.add($time2).on("change, keyup", function() {
    if ($time1.val() && $time2.val()) {
      updateHours()
    }
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="time" id="start" name="logintime" />
<input type="time" id="end" name="logouttime" />

<input id="totalTime" readonly="readonly" />
-1
Mohammed Juma 16 oct. 2018 a las 16:45

2 respuestas

La mejor respuesta

He modificado su fragmento, no es común usar $ en variables dentro de JS, aunque hay algunas situaciones en las que es útil ver la sección de comentarios a continuación.

La diferencia de tiempo ahora se muestra en segundos.

Eche un vistazo al siguiente código, si tiene alguna pregunta, deje un comentario.

$(document).ready(function() {
  var $time1 = $("#start");
  var $time2 = $("#end");
  var $diff = $("#totalTime");

  function updateHours() {

    var dtStart = new Date("10/16/2017 " + $time1.val());
    var dtEnd = new Date("10/16/2017 " + $time2.val());
    var dtEndafterlunch = new Date("10/16/2017 " + (dtEnd - dtStart));


    var difference = (dtEnd - dtStart)  / 1000;

    $diff.val(difference);
  }
  $time1.add($time2).on("change keyup", function() {
    if ($time1.val() && $time2.val()) {
      updateHours()
    }
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="time" id="start" name="logintime" />
<input type="time" id="end" name="logouttime" />

<input id="totalTime" readonly="readonly" />
0
Frank Groot 17 oct. 2018 a las 09:08

Agregue un espacio entre la fecha y la hora como se muestra a continuación

var dtStart = new Date("10/16/2017 " + $time1.val());

2
vijay krishna 16 oct. 2018 a las 13:55