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?
Inteligência artificial
O primeiro jogo a fazer uso de uma Inteligência Artificial foi o Mouse in the Maze, criado em 1955, na União Soviética. Você pode saber mais sobre ele clicando aqui.
Nintendo Wii
Nos primeiros oito dias após o lançamento do console Nintendo Wii foram vendidas 600 mil unidades. Isso equivale a quase um por segundo e estes incríveis números são referentes às vendas apenas nos EUA!
ENIAC
O ENIAC, primeiro computador valvulado do mundo, possuía 17.000 válvulas, 500.000 pontos de solda, 30 toneladas de peso e ocupava uma área de 180 metros quadrados. Clique aqui e conheça mais sobre a história dos computadores.
Mouse
O mouse foi criado em 9 de dezembro de 1968, por um americano chamado Douglas Engelbart, que o batizou de "XY Position Indicator for a Display System". Conheça a história do mouse clicando aqui.
Asteroids
O título Asteroids, do Atari, possui recorde de pontuação há 30 anos. Em 1982 um americano chamado Scott Safran atingiu a marca de 41.336.440. Atualmente ele faz parte de um minúsculo grupo de jogadores que conseguiram manter seus recordes por mais de 30 anos.