Comparar horas inserido no campo de texto pelo horário do sistema
8 respostas
ajaxprogramaçãojavascript
Diego_Henrique
Estou pelejando pra comparar o formato da hora que usuário colocar no campo de texto com o horário vigente, dinâmico seja do computador ou online.
Código Exemplo:
<!DOCTYPE html><html><body><formonsubmit="verificar(this)"><inputtype="text"value=""maxlength="5"onkeyup="validar(this)"size="4"/><inputtype="submit"value="Teste"name="submit"/></form><script>functionvalidar(hrs){if(hrs.value.length==2||hrs.value.length==6){hrs.value+=":";returnfalse;}}functionverificar(obj){// Obter a horaa atual à meia-noite. varnow=newDate();varhora=newDate(now.getHours(),now.getMinutes());// Definir horas de início/fimvarhora1=newDate("18:26");varhora2=newDate(hora);// Compare as duas horas, comparando os minuitos// representações.if(now.getMinutes()>hora1&&now.getMinutes()<hora2){document.write("Relógio especificado esta dentro deste intervalo.");}else{// Saída: hora especificada não está neste intervalo.document.write("Relógio especificado não está neste intervalo.");}}</script></body></html>
Se alguém ja passou por isso e puder me apontar onde tô cometendo erro, por favor me avise!
Talvez eu consiga te ajudar, mas preciso que me explique melhor.
Diego_Henrique1 like
Suponhamos que, agora, são:
19:00
horas e o usuário digite:
18:50
logo de imediato o sitema acusa, e emite um alert(“Hora inválida!”). Entendeu?!
Pois não coincide com a hora do sistema operacional(19:00), ou até mesmo do celular [smartphone] que ele esteja acessando no momento.
O Código acima do qual coloquei é apenas para se ter uma idéia melhor. Mas não é necessariamente preciso reutilizá-lo. Se alguém souber e/ou tiver um meio mais prático aceito sugestões diferetemente do código-fonte que postei.
A
anon304498181 like
Em resumo, o que eu faria está descrito nessa imagem:
Fiz o algoritmo aqui no meu PC, da seguinte forma:
Usar um input do tipo time;
Definir listener com evento input;
2.1. Dentro do listener, cria-se duas funções: uma para pegar o tempo do sistema e outra do usuário.
Separa horas e minutos, em arrays (x = [19, 00]; y = [18, 50]);
3.1. Situação aplica-se tanto para o tempo do sistema, quanto do usuário.
Converte-se as arrays em segundos;
Usamos uma estrutura de controle if, para comparar e ver se o horário do sistema é maior;
5.1. De acordo com o resultado, mostrar uma mensagem e mudar o estado do submit.
Nesta URL acima, ao vistoriar o código-fonte temos um elemento div com sua ID - #hora. Então queria eu saber uma fórmula de como implementar isso no script ao invés de estarmos a comparar o horário do sistema operacional local?
A
anon30449818
Nesse ponto, já não posso ajudar, porque ainda não estudei sobre Ajax.
No entanto, acho que vale a pena fazer uma nova pergunta, no fórum. Certo?!
Diego_Henrique
Mas ta valendo. Dê uma olhada nos links como referência: