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.
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;
Answered by Sergio on November 5, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP