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 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.


O primeiro computador a conseguir rodar o jogo Spacewar era o PDP-1, que custava 120 mil dólares e pertencia ao Massachusetts Institute of Technology. O jogo demorou 200 horas para ser desenvolvido, em 1962, e seu criador foi um cientista da computação chamado Steve Russel.


Em 1949 a revista Popular Mechanics fez uma previsão para o futuro, dizendo: "Um dia os computadores pesarão menos do que 1,5 tonelada". E pensar que temos smartphones capazes de realizar milhões de vezes mais operações do que os computadores daquela época.


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.


Street Fighter 2, lançado para o Super Nintendo no início dos anos 90, foi o principal responsável pelo aumento nas vendas deste console. Graças ao sucesso do título nos Arcades e à perfeita adaptação ao console, muitos consumidores adquiriram o SNES para jogarem o título em casa. Saiba mais.