Você está aqui: Home / programacao / php / conferir data no php isdate dissecando php.html

Validar data no PHP isDate – Dissecando PHP

Olá Galerinha, estamos aqui novamente com mais um post passando dicas sobre php para vocês, e no dia de hoje quero mostrar algumas formas possíveis para se verificar datas no php. A utilidade de se verificar datas são diversas, como exemplo básico, podemos citar uma entrada, onde você quer certificar-se de que o usuário informou uma data válida para o respectivo campo, então, cabe a você, validar a data no php.

Por incrível que pareça, o PHP não possui algo do tipo isDate(), uma função que é encontrada em um par de linguagens de programação, mas, em contrapartida, o php oferece uma função com o mesmo objetivo só que com uma sintaxe diferente. Trata-se da função checkdate(). A função checkdate() convere uma data e retorna true caso ela seja verdadeira ou false caso contrário, no entando, não basta passar a data que se deseja conferir para a função, é necessário passar ela dividia em mês, dia e ano, exatamente nessa ordem.

Veja o exemplo abaixo:

$dia = "29";
$mes = "02";
$ano = "2009"; 

if(checkdate($mes, $dia, $ano)){
	echo "Data válida";
}else{
	echo "Data inválida";
}

Bem, talvez você esteja pensando, nossa, que chato ter que ficar dividindo a data em dia, mes e ano para passar para a função, pois olha, vou te consolar que você não está sozinho nesse pensamento, afinal, de fato, é tedioso ter que ficar dividindo uma data sempre que quiser conferir se ela é válida ou não. Por conta disso, veja a função que criei em php para resolver esse problema. E advinhe o nome que eu dei pra ela, sim, isDate(), nada mais intuitivo né, principalmente pra quem vem de outras linguagens onde havia essa função. Essa função que desenvolvi, permite você validar uma data no formato utilizado aqui no brasil, ou seja dia/mes/ano, e além disso, você pode validar a data com esse formato dia-mes-ano.

Veja abaixo o código da função isDate php:

$date = "28/02/2009";

function isDate($date){
	$char = strpos($date, "/")!==false?"/":"-";
	$date_array = explode($char,$date);
	if(count($date_array)!=3) return false;
	return checkdate($date_array[1],$date_array[0],$date_array[2])?($date_array[2] . "-" . $date_array[1] . "-" . $date_array[0]):false;
}

if($date_ckecked=isDate($date)){
	echo $date_ckecked;
}else{
	echo "Data inválida";
}

Quem foi atento, percebeu que essa função possui outra utilidade além de validar uma data, essa outra utilidade que ela oferece é retornar uma data no formato suportado pelo banco de dados mysql, que é ano-mes-dia. Então, basta você pegar o retorno da função e salvar direto no banco de dados Mysql, caso seja essa sua necessidade. Mas você também pode só utilizar ela pra verificar se a data é inválida, conforme foi feito no exemplo acima.

Para verificar a funcionalidade dessa função, esperimente alterar o formato da data para $date = “28-02-2009″, notará que o script funcionará igualmente para esse formato. Tente também passar uma data inválida, como por exemplo essa $date = “28-02-2009″, vai notar que o script retorna false. Bom, acho que isso está explícito na função, mas quem não entendeu ainda, a função isDate que criei aí acima, irá retornar a data convertida para o formato aceito pelo Mysql caso a data seja válida, e caso contrário ela irá retornar false.

Vimos nesse artigo como validar uma data no PHP através da função – criada por mim – isDate(). E de lambuja ainda, ganhamos outro recurso através dessa mesma função, que é converter uma data no formato brasileiro para o formato usado no Mysql. Espero que esta função seja útil para você, assim como ela é útil para mim e para meus amigos. Fica aí a dica para se virar bem em web sites que exigem verificação de data.

Take Care!

Gostou? Compartilhe!
        

    One Response to Validar data no PHP isDate – Dissecando PHP

    Página 1 de 11
    • muito bom o teu script. Eu procurava uma função que verificasse também se o campo é null ou branco sem aqueles warnings. Valeu

      19/05Responder
      Villas
    Página 1 de 11

    Deixe um Comentário

    O seu endereço de email não será publicado Campos obrigatórios são marcados *

    *

    Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

    Receba Novidades no Email

    Artigos Populares do Mês