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:
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.
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
Curtir tópico
+ 1
Responder
Post mais votado
05/04/2018
Já conhece o moment.js? (https://momentjs.com/)
Pode ser que te ajude.
Pode ser que te ajude.
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.
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
Clique aqui para fazer login e interagir na Comunidade :)