Calcular horas com javascript.

JavaScript

HTML5

03/04/2018

Galera sou iniciante no desenvolvimento web estou desenvolvendo um sistema que precisa calcular o horário total de um certo serviço, subtraindo o valor do horário inicial do valor horário que foi finalizado certa atividade, e travei nessa parte:
function newFunction() {
  var hrIni =new Date(document.getElementById("hrIni").value);
  var hrF = new Date(document.getElementById("hrF").value);
  var hrTot = new Date();
  hrTot.setHours(hrIni.getHours()-hrF.getHours());         //Calcular um menos o outro
  alert(hrTot.getHours());                                 //quero mostrar em um alert o total das horas
 document.getElementById("hrT").value = hrTot;            //Jogar o valor em um terceiro campo do tipo time
}

no alert ele aparece como NaN e no campoHrTot não aparece nada.

pois não trás o resultado que eu desejo, lembrando que esses campos no html são do tipo time e só quero calcular as horas mesmos, ignorando os dias.
Caique

Caique

Curtidas 1

Melhor post

Ermesom Lourenco

Ermesom Lourenco

05/04/2018

Já conhece o moment.js? (https://momentjs.com/)
Pode ser que te ajude.
GOSTEI 1

Mais Respostas

Fernando Duwe

Fernando Duwe

03/04/2018

Oi Caique,

O problema com as datas ocorre porque, para criar o objeto Date, você precisa informar uma data/hora válida, não somente o 08:00, consegui resolver o problema assim:

var hrIni =new Date("01/01/1990 " + document.getElementById("hrIni").value + ":00");
var hrF = new Date("01/01/1990 " + document.getElementById("hrF").value + ":00");

Porém, pelo que vi na sua função, hrTot está sendo criado com a data atual, o que fará com que sua conta não feche, utilize hrF para calcular ao invés disso.
GOSTEI 0
POSTAR