?View Code JAVASCRIPT
<script language="javascript">
    /*
    Autor.......: Kenneth R. B. Carletto
    Contato.....: MSN(keno_brow@msn.com) E-Mail(chorao.info@gmail.com)
    Data........: 20/08/07
    Finalidade..: Função que retorna qual das duas datas (passadas como parametro)
                  é maior, baseada no objeto Date e sua funcao getTime();
    */
 
    // gE('idElemento'): Simplesmente retorna uma referencia ao objeto 'idElemento'
    function gE(idElemento){
        return document.getElementById(idElemento);
    }
 
    function dataMaior(dt1,dt2){
        // dt1 e dt2: Devem ser tipo String, para evitar confusao de tipos
        if(typeof dt1 != "string" ||
           typeof dt2 != "string"){
            alert("As datas devem ser passadas como strings");
            return false;
        }
 
        // dt1 e dt2: Alem de strings, dt1 e dt2 devem obedecer aos formatos de data do Brasil (dd/mm/aa ou dd/mm/aaaa)
        padrao = /d{2}/d{2}/(?:d{2}|d{4})/;
        if(!padrao.test(dt1) ||
           !padrao.test(dt2)){
            alert("Formato de data invalido.nUtilize dd/mm/aa ou dd/mm/aaaa");
            return false;
        }
 
        // Instanciamos as datas, para poder usar getTime();
        data1 = new Date(dt1);
        data2 = new Date(dt2);
        if(!data1 || !data2){
            alert("Erro ao criar objetos");
            return false;
        }
 
        // milliSegundos1: irá conter a quantidade de segundos corridos desde 1/1/1970 0h ate dt1
        milliSegundos1 = data1.getTime();
        // milliSegundos2: irá conter a quantidade de segundos corridos desde 1/1/1970 0h ate dt2
        milliSegundos2 = data2.getTime();
 
        // Comparando millisegundos para retornar a conclusão de quem é maior que quem...
        if(milliSegundos1 == milliSegundos2){
            alert("As datas são iguais");
            return true;
        } else if(milliSegundos1 > milliSegundos2){
            alert("Data 1 maior que data 2");
            return true;
        } else if(milliSegundos1 < milliSegundos2){
            alert("Data 2 maior que data 1");
            return true;
        } else return false;
    }
</script>
<input name="tdt1" value="10/01/07" type="text" />
<input name="tdt2" value="10/02/07" type="text" />
<input value="Maior" onclick="dataMaior(gE('tdt1').value,gE('tdt2').value)" type="button" />
Gostou??? Compartilhe!!!
  • Add to favorites
  • Print
  • PDF
  • email
  • RSS
  • del.icio.us
  • Facebook
  • LinkedIn
  • Google Bookmarks
  • Twitter
  • MySpace
  • StumbleUpon
  • Live
  • BlinkList
  • Netvibes
  • Sphinn

Posts relacionados:

  1. JavaScript para calcular distâncias entre 2 coordenadas 5

7 Responses to “Comparando datas com JavaScript”

  1. Muito legal! Parabéns, você se garante em javascript!
    Obrigado.

  2. Mas não foi eu quem fiz… peguei em algum lugar e não lembro onde… ;)

  3. isso não funciona se o mes da data fim for menor q o da inicio ;)

  4. @paladino: Se quiser corrigir, publico aqui no blog… ;)

  5. ele tem problema com horário de verão.. tem que validar elemento por elemento da data

  6. Salvou! vlw!

  7. Legal esse código, mas me explica uma coisa: por que ele fala que 30/05/2010 é maior do que 20/06/2010 ???

Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2011 Vinicius Cordeiro Suffusion theme by Sayontan Sinha
6 visitors online now
0 guests, 6 bots, 0 members
Max visitors today: 7 at 06:39 am BRT
This month: 14 at 02-03-2012 01:13 am BRT
This year: 25 at 01-27-2012 02:32 am BRT
All time: 2656 at 02-03-1998 04:52 am BRT