Verificando a validade de uma data em PHP

Para saber se o usuário submeteu uma data valida, utilize a função checkdate(), que valida uma data no formato MM/DD/YYYY:


list($mes, $dia, $ano) = explode (‘/’, $data);
if (checkdate($mes, $dia, $ano))
{
print “Data valida.”;
}
else
{
print “Data Invalida.”
}

Para validade uma data, a função checkdate() utiliza os seguintes critérios:
• ano está entre 0 e 32767, inclusive;
• mês está entre 1 e 12;
• dia está dentro do numero de dias permitidos para o mês especifico. Anos bissextos serão levados em consideração.

Esta solução pode ser facilmente implementada no PHP. Veja um exemplo de como pode ser feito:

//retorno true se ano for bissexto
function ehBissexto($ano)
{
	return ((($ano%4)==0 && ($ano%100)!=0 ) || ($ano%400)==0);
}

function dataEhValida($data)
{
	// separa a data
	list($mes,$dia,$ano) = explode('/',$data);
	//quantidade de dias em cada mes do ano
	$dias_mes = array(31,28,31,30,31,30,31,31,30,31,30,31);
	//verifica se o mes eh valido
	if($mes  12)
	{
		return false;
	}
	// verifica se o ano tem 4 digitos e possui somente numeros
	if((strlen($ano) != 4) || eregi("[^0-9]",$ano))
	{
		return false;
	}
	// verifica se eh bissexto
	if(ehBissexto($ano))
	{
		// se for bissexto, fevereiro possui 29 dias
		$dias_mes[1] = 29;
	}
	//verifica se o numero esta entre 1 e o maximo de dias do mes informado
	if($dia  $dias_mes[$mes-1])
	{
		return false;
	}
	
	return true;
}

http://www.couto.zuntto.com



Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s