Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Converter tempo para decimal em javascript

Galera gostaria de saber com eu posso fazer para pegar a quantidades de horas que uma pessoa trabalhou e colocá-las em um input.... pois bem isso eu consegui mais quando eu coloco números quebrados tipo 12:30 e 15:00 ele não mostra a meia hora trabalhada aparece apenas 3 hrs trabalhadas alguém poderia me ajudar?

segue abaixo a minha function:

function Comercial() {
                var almoco = parseFloat(document.getElementById("hora_inicio_almoco").value);
                var fim = parseFloat(document.getElementById("hora_fim_almoco").value)
                var x = fim - almoco;
                var inicio = parseFloat(document.getElementById("hora_inicio").value);
                var termino = parseFloat(document.getElementById("hora_termino").value);
                var y = termino - inicio;
                var con = y - x;
                document.getElementById("total_dia_comercial").value = con.toFixed(2);
            }
3 respostas

Boa tarde, Anderson.

Você tem que utilizar o objeto do JavaScritpt Date. Para saber mais sobre esse objeto recomendo você dar uma olhada na MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

Fiz um código de exemplo:

var inicioTrabalhoSomenteHora = 10;
var inicioTrabalhoSomentMinuto = 30;
var objetoDateInicioTrabalho = new Date();
objetoDateInicioTrabalho.setUTCHours(inicioTrabalhoSomenteHora);
objetoDateInicioTrabalho.setUTCMinutes(inicioTrabalhoSomentMinuto);

var fimTrabalhoSomenteHora = 13;
var fimTrabalhoSomentMinuto = 40;
var objetoDateFimTrabalho = new Date();
objetoDateFimTrabalho.setUTCHours(fimTrabalhoSomenteHora);
objetoDateFimTrabalho.setUTCMinutes(fimTrabalhoSomentMinuto);

console.log(objetoDateInicioTrabalho);
console.log(objetoDateFimTrabalho);

//Retorna o total de horas trabalhadas em milisegundos
var totalDeHorasTrabalhadas = objetoDateFimTrabalho - objetoDateInicioTrabalho;

Tendo dúvida só falar.

[]'s Marco Bruno.

Como que eu vo pegar os minutos sendo que eu estou usando um input com type="time"?

solução!

Boa tarde, Anderson.

Você vai ter que pegar o valor do elemento <input type="time"> e depois separar a hora dos minutos com o método split. Segue código abaixo de exemplo:

//Pegando o valor do elemento input do tipo time
var valorInputTime = document.querySelector('input[type]').value;

//Se o valor do input for 10:00, o método split retorna um array onde a 
//primeira posição é 10(hora) e a segunda 00(minutos). 
var hora = valorInputTime.split(':')[0];
var minutos= valorInputTime.split(':')[1];

[]'s Marco Bruno.