Calcular horas com javascript.

03/04/2018

0

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

Responder

Post mais votado

05/04/2018

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

Ermesom Lourenco

Ermesom Lourenco
Responder

Mais Posts

05/04/2018

Fernando Duwe

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.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar