MINUTOS ENTRE HORAS
Boa tarde gente.
é meu primeiro forum e preciso muito de ajuda.
Em um form tenho 3 INPUTS:
<form method=[Ô]post[Ô] action=[Ô]<%=MM_editAction%>[Ô] name=[Ô]form1[Ô] onSubmit=[ô]return confereCampos(this)[ô]>
<input type=[Ô]text[Ô] name=[Ô]Inicio[Ô] maxlength=[Ô]5[Ô] onkeypress=[Ô]valida_horas(this)[Ô] size=[Ô]15[Ô] class=[ô]obrigatorio[ô]>
<input type=[Ô]text[Ô] name=[Ô]Fim[Ô] maxlength=[Ô]5[Ô] onKeyPress=[Ô]valida_horas(this)[Ô] size=[Ô]15[Ô] class=[ô]obrigatorio[ô] onBlur=[Ô]subtrai()[Ô]>
<input type=[Ô]text[Ô] name=[Ô]Tempo[Ô] maxlength=[Ô]5[Ô] size=[Ô]15[Ô]>
Inicio e Fim é onde coloco hora inicial e hora final de produção aqui da empresa (hh:mm)
No momento que coloco a hora final e saio da input deveria calcular o intervelo em minutos, mas não está funcionando a função abaixo, pois nada aparece na 3a Input.
function subtrai()
{
a= document.form1.Inicio.value
b= mid(a,1,2)*60 + mid(a,4,2)
c= document.form1.Fim.value
d= mid(c,1,2)*60 + mid(c,4,2)
total_horas= d - b
document.form1.Tempo.value=total_horas;
}
Por favor, help-me... tenho de entregar esse resultado rapido.
é meu primeiro forum e preciso muito de ajuda.
Em um form tenho 3 INPUTS:
<form method=[Ô]post[Ô] action=[Ô]<%=MM_editAction%>[Ô] name=[Ô]form1[Ô] onSubmit=[ô]return confereCampos(this)[ô]>
<input type=[Ô]text[Ô] name=[Ô]Inicio[Ô] maxlength=[Ô]5[Ô] onkeypress=[Ô]valida_horas(this)[Ô] size=[Ô]15[Ô] class=[ô]obrigatorio[ô]>
<input type=[Ô]text[Ô] name=[Ô]Fim[Ô] maxlength=[Ô]5[Ô] onKeyPress=[Ô]valida_horas(this)[Ô] size=[Ô]15[Ô] class=[ô]obrigatorio[ô] onBlur=[Ô]subtrai()[Ô]>
<input type=[Ô]text[Ô] name=[Ô]Tempo[Ô] maxlength=[Ô]5[Ô] size=[Ô]15[Ô]>
Inicio e Fim é onde coloco hora inicial e hora final de produção aqui da empresa (hh:mm)
No momento que coloco a hora final e saio da input deveria calcular o intervelo em minutos, mas não está funcionando a função abaixo, pois nada aparece na 3a Input.
function subtrai()
{
a= document.form1.Inicio.value
b= mid(a,1,2)*60 + mid(a,4,2)
c= document.form1.Fim.value
d= mid(c,1,2)*60 + mid(c,4,2)
total_horas= d - b
document.form1.Tempo.value=total_horas;
}
Por favor, help-me... tenho de entregar esse resultado rapido.
A dica do malandro, é espalhar Alerts no seu JS:
Rode e veja...
function subtrai()
{
a= document.form1.Inicio.value;
alert(a);
b= mid(a,1,2)*60 + mid(a,4,2);
alert(b);
c= document.form1.Fim.value;
alert(c);
d= mid(c,1,2)*60 + mid(c,4,2);
alert(d);
total_horas= d - b;
alert(total_horas);
document.form1.Tempo.value=total_horas;
}
Rode e veja...
Cara, eu ia fazer assim... apagar Alert por Alert... mas só rolou o alerto do [Ô]a[Ô]... o Alert do [Ô]b[Ô] nem aparece... pra falar a verdade... só o Alert do [Ô]a[Ô] que aparece. Nos outros Alerts nem abrem... nem da erro....
Não sei oq faço mais...
Não sei oq faço mais...
Ok, então o erro está em [Ô]b= mid(a,1,2)*60 + mid(a,4,2);[Ô]
Abra sua página no Chrome e pressione CTRL + SHIFT + J, uma janela vai aparecer, nela vai constar o erro que está acontecendo...
Abra sua página no Chrome e pressione CTRL + SHIFT + J, uma janela vai aparecer, nela vai constar o erro que está acontecendo...
Deu o erro em vermelho:
function subtrai()
{
a= document.form1.Inicio.value
b= mid(a,1,2)*60 + mid(a,4,2)
[txt-color=#e80000]Uncaught ReferenceError: mid is not defined[/txt-color]
alert(b)
c= document.form1.Fim.value
alert(c)
d= mid(c,1,2)*60 + mid(c,4,2)
alert(d)
total_horas= d - b
alert(total_horas)
document.form1.Tempo.value=total_horas
}
function subtrai()
{
a= document.form1.Inicio.value
b= mid(a,1,2)*60 + mid(a,4,2)
[txt-color=#e80000]Uncaught ReferenceError: mid is not defined[/txt-color]
alert(b)
c= document.form1.Fim.value
alert(c)
d= mid(c,1,2)*60 + mid(c,4,2)
alert(d)
total_horas= d - b
alert(total_horas)
document.form1.Tempo.value=total_horas
}
Em javascript não existe a função mid, você tem que usar o método substring para pegar isso, sendo que ele funciona diferente do mid, você tem que dizer nele o indice inicial e o final
Considerando que o formato do texto esteja sempre do tipo [ô]HH:MM[ô] ficaria mais ou menos assim
b = parseInt(a.substring(0,2)) * 60 + parseInt(a.substring(3,5));
usar o parseInt é importante pois se não for usado e um valor do tipo [ô]02:10[ô] for passado o resultado seria [ô]12010[ô] em vez de [ô]130[ô] já que o operador [ô]+[ô] sempre concatena os valores se um deles for string.
Considerando que o formato do texto esteja sempre do tipo [ô]HH:MM[ô] ficaria mais ou menos assim
b = parseInt(a.substring(0,2)) * 60 + parseInt(a.substring(3,5));
usar o parseInt é importante pois se não for usado e um valor do tipo [ô]02:10[ô] for passado o resultado seria [ô]12010[ô] em vez de [ô]130[ô] já que o operador [ô]+[ô] sempre concatena os valores se um deles for string.
Cara, vlw! Sou novo em programação e to aprendendo a caçar no google, rs.
Abraços!
Abraços!
Tópico encerrado , respostas não são mais permitidas