TransWikia.com

Comparação simples entre datas

Stack Overflow em Português Asked by Vinicius on November 5, 2021

Preciso de uma comparação simples entre datas em javascript a data final não pode ser menor que a data inicial. Achei alguns scripts na internet e tentei adaptar para o meu, mas como conheço praticamente nada, não deu certo.

Segue o script que eu estou adaptando.

  <script language="javascript">
function checarDatas(){
var form_insere = document.form_insere;

var data_1 = form_insere.datainicial.value;
var data_2 = form_insere.datafinal.value;
var Compara01 = parseInt(data_1.split("/")[2].toString() + data_1.split("/")[1].toString() + data_1.split("/")[0].toString());
var Compara02 = parseInt(data_2.split("/")[2].toString() + data_2.split("/")[1].toString() + data_2.split("/")[0].toString());

if (Compara01 > Compara02) {
   alert("Data não pode ser maior que a data final");
   return false;
}
else {
    return true
}
 }
    </script>

coloquei também onsubmit="return checarDatas()" na tag form.
O objetivo é quando o usuário digitar uma data inicial (07/05/2014) e depois na data final (06/04/2014) dispare um alerta indicando que as datas estão erradas e não deixe ele submeter o formulário até voltar e corrigir.
Obrigado, e aceito quaisquer tipos de sugestões.

3 Answers

Utilizando a biblioteca moment podemos fazer uma comparação desta forma:

let date1 = moment(date_1, "DD/MM/YYYY").format("YYYYMMDD");
let date2 = moment(date_2, "DD/MM/YYYY").format("YYYYMMDD");

if (date2 > date1) {
  return false;
}
return true;

Answered by Jadson Firmo on November 5, 2021

Complementando:

Existe uma ótima biblioteca, chamada Moment.js, feita especialmente para tratar de datas/horas/timezones. Dependendo da necessidade de manipulação de datas no seu projeto, ela pode se tornar interessante.

Um exemplo de comparação de datas usando a Moment.js:

var agora = moment();
var amanha = moment().add('days', 1);

if (agora < amanha) {
    // alguma coisa
}
else {
    // outra coisa
}

Answered by Michael Siegwarth on November 5, 2021

Creio que basta criar objectos data e compará-los.

function checarDatas() {
    var form_insere = document.form_insere;

    var data_1 = new Date(form_insere.datainicial.value);
    var data_2 = new Date(form_insere.datafinal.value);
    if (data_1 > data_2) {
        alert("Data não pode ser maior que a data final");
        return false;
    } else {
        return true
    }
}

Estas validações podem ser mais ou menos complexas dependendo do que pretende fazer. Sugiro juntar uma verificação para o caso de as datas não terem sido escolhidas. Na sua forma mais simples seria:

if (!data_1 || !data_2) return false;

Exemplo

Answered by Sergio on November 5, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP