Na enorme maioria das vezes você fará validações de datas em códigos no lado do cliente, por exemplo através de uma função Javascript, mas se por alguma razão você precisar validar no lado do servidor, o PHP tem uma função interessante para isso, que é a checkdate. Vamos a um exemplo que supõe o recebimento de uma data, a divide em dia, mês e ano, então efetua a validação:

<?php
$dataRecebida = "15/12/2004";
$partes = explode("/", $dataRecebida); //Quebrando a data em partes, que serão o dia, mês e ano
$dataValida = checkdate($partes[1],$partes[0],$partes[2]);
echo($dataValida);
?>

A função checkdate vai retornar o valor 1 caso a data seja válida e retornará um valor vazio caso seja inválida.
Caso o dado fornecido para a função tenha o dia com valor 32 ou o mês com o valor 13, ela retornará o valor vazio. Apenas como observação, o mês de fevereiro é corretamente validado como o máximo de 29 dias e não 30 ou 31. É uma função bastante interessante e que pode gerar um grande ganho de tempo durante o desenvolvimento.


Outras dicas de PHP


Apagando variáveis de sessão

array_reverse - Invertendo um vetor

array_search - Procurando um item em um array

Capturando a extensão de um arquivo

Capturando dados de um checkbox

Casts - Convertendo tipos de dados

ceil - Arredondando números reais para cima

checkdate - Validando datas no código PHP

Como desabilitar checkbox

Como desabilitar um radiobutton

Como permitir somente o upload de imagens

Como remover espaços em branco de uma string

Como validar o upload de um arquivo via POST

Convertendo caracteres com acento para maiúsculo com mb_strtoupper

Corrigindo a formatação da página para exibir acentos

Corrigindo o erro 'invalid byte sequence for encoding' ao acessar o Postgres

Criando e lendo um cookie em PHP

Criando variáveis de sessão

Date - Exibindo horário em formato hh:mm:ss

define - Criando constantes

Desabilitando as mensagens de Deprecated Functions

empty - Verificando se variável está vazia

Entendendo as diferenças entre os comandos include e require

Entendendo as diferenças entre os comandos include_once e require_once

Exibindo uma imagem após o post

floor - Arredondando números reais para baixo

gettype - Obtendo o tipo de dado de uma variável

Impedindo SQL Injection

Imprimindo Arrays

join - Convertendo um array em string

max - Encontrando o maior elemento de um vetor

min - Encontrando o menor elemento de um vetor

mt_rand - Gerando números randômicos

number_format - Formatando números

Operador ternário

Passando caracteres especiais por GET

Passando dados por QueryString

Permitindo o upload somente de arquivos PDF e do Word

Redirecionando para outras páginas

Removendo acentos em PHP

Removendo cookies em PHP

Retornando para a página anterior

Round - Arredondando números float

Rsort - Ordenando os itens de um vetor em ordem alfabética decrescente

session_write_close - gravando dados e fechando a sessão

shuffle - Embaralhando elementos de um array

Sizeof - Contando os elementos de um vetor

Sort - Ordenando os itens de um vetor

strtolower - Deixando todos os caracteres em minúsculo

strtoupper - Deixando todos os caracteres em maiúsculo

str_replace - Substituindo caracteres em uma string

Trabalhando com datas em PHP

ucfirst - Deixando o primeiro caractere sempre maiúsculo

ucwords - Deixando o primeiro caractere de cada palavra maiúsculo

unset - Excluindo variáveis

unset - Removendo elementos de um array

var_dump - Analisando as variáveis

Você Sabia?

O épico jogo River Raid, do Atari, foi desenhado e boa parte de sua programação foi feita por uma mulher: Carol Shaw, uma excelente programadora e funcionária da Activision em 1982. Saiba mais sobre a história deste incrível jogo, aqui.


Digitar senhas em computadores de uso coletivo é extremamente perigoso, pois além de softwares de monitoramento, existem dispositivos de hardware que podem capturar suas senhas. Evite ao máximo acessar sites de bancos a partir destes computadores. Veja mais aqui.


O famoso título Final Fantasy, da Square Enix, tem este nome exatamente porque se tratava da última esperança da empresa, que estava à beira da falência quando o lançou. Clique aqui e conheça detalhes dessa história.


O título Tetris detém o recorde de jogo mais adaptado de todos os tempos. No total foram mais de 60 plataformas diferentes que receberam alguma versão do quebra-cabeças criado por Alexey Pajitnov. Conheça mais sobre este incrível jogo clicando aqui.


A Máquina de Pascal, criada em 1642 pelo filósofo, físico e matemático francês Blaise Pascal, é reconhecida como o primeiro computador do mundo e ele foi criado com o objetivo de calcular impostos. Saiba mais.