Em JavaScript, podemos comparar duas datas convertendo-as em valor numérico para corresponder ao seu tempo . Primeiro, podemos converter a Data em um valor numérico usando a função getTime() . Ao converter as datas fornecidas em valor numérico, podemos compará-las diretamente. Exemplo 1: <script> // Current Date var g1 = new Date(); var g2 = new Date(); if (g1.getTime() === g2.getTime()) document.write("Both are equal"); else document.write("Not equal"); javascript: ; </script>Saída: Both are equalExemplo-2: <script> var g1 = new Date(); // (YYYY-MM-DD) var g2 = new Date(2019 - 08 - 03); if (g1.getTime() < g2.getTime()) document.write("g1 is lesser than g2"); else if (g1.getTime() > g2.getTime()) document.write("g1 is greater than g2"); else document.write("both are equal"); javascript: ; </script>Saída: g1 is greater than g2Exemplo-3: <script> var g1 = new Date(2019, 08, 03, 11, 45, 55); // (YYYY, MM, DD, Hr, Min, Sec) var g2 = new Date(2019, 08, 03, 10, 22, 42); if (g1.getTime() < g2.getTime()) document.write("g1 is lesser than g2"); else if (g1.getTime() > g2.getTime()) document.write("g1 is greater than g2"); else document.write("both are equal"); javascript: ; </script>Saída: g1 is greater than g2O JavaScript é mais conhecido para o desenvolvimento de páginas da web, mas também é usado em uma variedade de ambientes sem navegador. Você pode aprender JavaScript desde o início, seguindo este tutorial de JavaScript e exemplos de JavaScript . Igualdade ampla compara dois valores para a igualdade, após converter ambos os valores para um tipo comum. Após as conversões (um ou ambos os lados podem sofrer conversões), a comparação de igualdade final é realizada exatamente como === executa. Igualdade ampla é simétrica: A == B sempre tem semântica idêntica à B == A para quaisquer valores de A e B. A comparação de igualdade é realizado da seguinte forma para os operandos dos vários tipos: Na tabela acima, ToNumber(A) tenta converter seu argumento para um número antes de comparação. Seu comportamento é equivalente a +A (o operador + unário). ToPrimitive(A) tenta converter seu argumento de objeto para um valor primitivo, tentando invocar sequências diferentes de A.toString e A.valueOf métodos em A. Tradicionalmente, e de acordo com ECMAScript, todos os objetos são amplamente desiguais a undefined e null. Mas a maioria dos navegadores permitem uma classe muito limitada de objetos (especificamente, o objeto document.all para qualquer página), em alguns contextos, para agir como se eles emulassem o valor undefined. Igualdade ampla é um desses contexto. Portanto, o método IsFalsy(A) é avaliada como verdadeira se, e somente se, A for um objeto que emula undefined. Em todos os outros casos, um objeto não é amplamente igual a undefined ou null. var num = 0; var obj = new String("0"); var str = "0"; console.log(num == num); console.log(obj == obj); console.log(str == str); console.log(num == obj); console.log(num == str); console.log(obj == str); console.log(null == undefined); console.log(obj == null); console.log(obj == undefined); Alguns desenvolvedores consideram que nunca é uma boa idéia, praticamente, usar a igualdade ampla. O resultado de uma comparação usando a igualdade estrita é mais fácil de prever, e como nenhum tipo de coerção ocorre, a avaliação pode ser mais rápida.
Esse c�digo logo abaixo, apresenta como mostrar a data atual de forma mais bruta poss�vel. Ela � quase inutiliz�vel, de t�o bruta (simples), mas quem ainda n�o sabe comandar eventos de data em JavaScript, deve começar por aqui. Relacionado: Curso completo de JavaScript <html> <head> </head> <body> <script language=javascript type="text/javascript"> now = new Date document.write ("Hoje � " + now.getDay() + ", " + now.getDate() + " de " + now.getMonth() + " de " + now.getFullYear() ) </script> </body> </html> Listagem 1. C�digo bruto de como mostrar a data atualFigura 1. Como ficaria a data bruta Explicando o c�digo: now = new Date Essa primeira linha do c�digo ir� criar uma nova vari�vel de data now com o comando new Date, que instrui o JavaScript a criar um novo objeto date e preenche-lo com a data atual. document.write ("Hoje � " + now.getDay() + ", " + now.getDate() + " de " + now.getMonth() + " de " + now.getFullYear() ) Nessa pr�xima parte do c�digo, vamos chamar o m�todo document.write, que tem a funç�o de escrever na tela. Dentro, n�s colocaremos o c�digo principal, respons�vel pela criaç�o das datas. O que se encontra dentro de aspas, a partir de agora, ser� um texto; e o que estiver fora de aspas, ser� o tal c�digo que deveremos estudar. O getDay() ir� mostrar o dia da semana. � preciso saber que no JavaScript, na maioria das vezes, uma contagem começa com o n�mero zero. Ent�o, domingo vale zero, segunda vale um, terça vale dois, e assim por diante. O getDate(), por sua vez, equivale ao dia do m�s, n�o tendo a mesma regra de antes de s� começar em zero. J� o getMonth() e o getFullYear(), equivalem, respectivamente, ao m�s e ao ano, e o m�s, como o dia da semana, começa em zero, logo, julho n�o � m�s sete, mas m�s seis. � l�gico que em um site decente, o usu�rio n�o ser� obrigado a saber disso, por isso, n�s criaremos arrays, que s�o conjuntos de informaç�es compactas.
Nesse c�digo, eu criarei dois arrays, um para os dias da semana, e outro para os dias dos meses. <html> <head> <script language=javascript type="text/javascript"> dayName = new Array ("domingo", "segunda", "terça", "quarta", "quinta", "sexta", "s�bado") monName = new Array ("janeiro", "fevereiro", "março", "abril", "maio", "junho", "agosto", "outubro", "novembro", "dezembro") now = new Date </script> </head> <body> <script language=javascript type="text/javascript"> document.write ("<h1> Hoje � " + dayName[now.getDay() ] + ", " + now.getDate () + " de " + monName [now.getMonth() ] + " de " + now.getFullYear () + ". </h1>") </script> </body> </html> Explicando o c�digo: dayName = new Array ("domingo", "segunda", "terça", "quarta", "quinta", "sexta", "s�bado") monName = new Array ("janeiro", "fevereiro", "março", "abril", "Maio", "junho", "agosto", "outubro", "novembro", "dezembro") Essa � a parte do c�digo em que criamos os arrays. No primeiro array, eu dei nomes para os dias da semana. Zero agora ser� domingo, um ser� segunda, e assim por diante. Do mesmo modo com os nomes dos meses. document.write ("<h1> Hoje � " + dayName[now.getDay() ] + ", " + now.getDate () + " de " + monName [now.getMonth() ] + " de " + now.getFullYear () + ". </h1>") Dentro de document.write, pomos o nome da array que ser� utilizada, e logo depois, entre colchetes, pomos a funç�o que retorna o �ndice do dia e do m�s no vetor. Figura 2. Resultado da apresentaç�o de datas usando alguns arrays Saiba mais sobre objetos e vetores em JavaScript
At� agora, s� foi apresentado como mostrar datas. Agora, ser� como apresentar hor�rios. <html> <head> </head> <body> <script language=javascript type="text/javascript"> now = new Date document.write ( "Agora s�o " + now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds() + ":" + now.getMilliseconds() ) </script> </body> </html> Listagem 3. Apresentando hor�rios
No c�digo anterior, mostrei como apresentar hor�rios, mas eles s�o fixos. Ou seja, praticamente in�teis, mas devemos aprender primeiramente do jeito mais f�cil para passar ao mais dif�cil, que � esse, que apresenta o hor�rio em tempo real, ou seja, que se altera conforme o tempo passa. <html> <head> <script type="text/javascript"> function time() { today=new Date(); h=today.getHours(); m=today.getMinutes(); s=today.getSeconds(); document.getElementById('txt').innerHTML=h+":"+m+":"+s; setTimeout('time()',500); } </script> </head> <body onload="time()"> <div id="txt"></div> </body> </html> Listagem 4. Apresentando hor�rio em tempo realExplicando o c�digo: function time() { ... } Em head, devemos criar uma funç�o. Dentro dela, criei vari�veis (h, m e s) para respectivos objetos de tempo, como minutos e segundos. Logo ap�s criar essas vari�veis, vamos lig�-las a div criada logo depois, em body. setTimeout ir� executar o c�digo a cada 500 mil�simos de segundo, ou, a cada meio segundo. <body onload="time()"> <div id="txt"></div> Em body, devemos especificar que a funç�o time() dever� ser executada logo ap�s o carregamento da p�gina, para isso, a chamamos no evento onload. Logo abaixo, est� a div que ir� carregar o rel�gio criado.
Tendo em vista que voc� poder� lidar frequentemente com datas, segue abaixo uma tabela com todos os m�todos do objeto date. Voc� ver� algumas refer�ncias a UTC, que significa Coordinated Universal Time, que substitui a GreenWich Mean Time (GMT) em 1986 como padr�o mundial para hora.
Em verdade, essa foi uma introduç�o � utilizaç�o de datas e hor�rios em p�ginas web usando Java Script. Usando esses objetos apresentados anteriormente, o web designer poder� fazer eventos muito mais complexos, mas esses n�o cabem nesse artigo, que est� voltado aos iniciantes em JavaScript. Links �teis
Saiba mais sobre Javascript ;)
|