Data Javascript

6 respostas
R

galera

alguém tem uma função javascript que verifica se a data que foi digitada e menor que a data atual ?

6 Respostas

tsprates

faria assim:
var now = new Date(); // data agora
var date = new Date(year, month, day); // são numeros fornecidos pelo usuario

if (now.getTime() > date.getTime()) {

// data agora é maior

} else {

// data agora é menor

}

Não sei o seu caso, se é para usar em formulario eu usaria jQuery plugin js
http://jqueryui.com/demos/datepicker/
Ae vc seta opção a miDate para mínima data aceitável ou outra opção la

R

tsprates

essa linha aqui esta dando errado

var date = new Date(year, month, day); // são numeros fornecidos pelo usuario

como eu faço para pegar o dia,mes e ano que o usuario digitar ?

tsprates
da um split antes

// alternativa getElementById 
var data = document.forms['NOMEDOFORM'].elements['NOMEDOELEMENTO'].value.split('/'); // Aqui to dizendo string será +/- assim 20/02/2005(dis/mes/ano)
var date = parseInt(data[0], 10);
var month = parseInt(data[1], 10);
var year = parseInt(data[2], 10);

var dateTime = new Date(year, month, date);
...

Não se é isso q vc pediu.
Qualquer coisa entra aki: https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date

R

tsprates

eu montei dessa forma mais ainda não funcionou como deve consegue dar um suporte nesse codigo que montei para funcinar essa função como eu preciso ?

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<script>

function validaDataMenorQueAdigitada() {

 var dataDigitadaUsuario = document.forms['NOMEDOFORM'].elements['dataDigitada'].value.split('/');   
 var date = parseInt(dataDigitadaUsuario[0], 10);  
 var month = parseInt(dataDigitadaUsuario[1], 10);  
 var year = parseInt(dataDigitadaUsuario[2], 10);    
 var dataDoDia = new Date();
 
 	if (dataDoDia.getTime() > dataDigitadaUsuario.getTime()) {
		alert("data agora é maior");
	} else {
		alert("data agora é menor");
	}
}
</script>
<form id="NOMEDOFORM">
	<input type="Text" id="date" name="dataDigitada" >
	<input type="Button" onclick="validaDataMenorQueAdigitada(this)" value="Teste Data">
</form>
</body>
</html>
tsprates
<script>

function validaDataMenorQueAdigitada() {

	var dataDigitada = document.forms['form'].elements['dataDigitada'].value;
	// Expressão Regular não completa para vc verifcar o formato dd/mm/yyyy  bom usar uma para ver se o usuario digitou correto)
	var expreg = /(0?[1-9]|[1-2]?[0-9]|3[01])\/(0?[1-9]|1[12])\/([1-9][0-9]{3})/;
	var validaData = expreg.exec(dataDigitada);
	
	if (!validaData || validaData.length < 3) {
		alert("Data inválida");
	} else {
		var dataDigitadaUsuario = new Date(validaData[3],validaData[2],validaData[1]);
		var dataDoDia = new Date();
		if (dataDoDia.getTime() > dataDigitadaUsuario.getTime()) {  
			alert("data agora é maior");  
		} else {  
			alert("data agora é menor");  
		} 
	}
}
 
</script>
<form name="form">
	<input type="Text" id="date" name="dataDigitada" >
	<input type="Button" onclick="validaDataMenorQueAdigitada()" value="Teste Data">
</form>

é mais ou menos assim, ve ae como fica acho q assim funciona

R

tsprates

a alteração que vc fez esta entrando sempre no alert(“data agora é menor”); mesmo que eu digite uma data maior

Criado 12 de maio de 2010
Ultima resposta 14 de mai. de 2010
Respostas 6
Participantes 2