Baixar apostila PHP Progressivo
Verificando datas: Função checkdate()
Muitas vezes, durante sua carreira de desenvolvedor web PHP, você vai precisar verificar se uma determinada data é válida, ou seja, se ela realmente existiu ou pode existir, como por exemplo, a data de nascimento de uma pessoa.Se ela colocou 30/02 de qualquer ano, saiba que é um bot, um vírus ou alguém tentando 'trollar' o sistema, pois fevereiro não tem 30 dias.
O PHP possui uma função pré-definida, a checkdate(), que determina se uma data é existente ou não e sua sintaxe é:
boolean checkdate(int month, int day, int year)
Ou seja, você fornece três inteiros: mês, dia e ano e ela te retorna TRUE se a data for válida e FALSE se não existir.
Note que primeiro vem o mês. Diferente de nós do Brasil que usamos o dia primeiro, lá fora é o mês que vem antes, ok?
Por exemplo:
checkdate(5,5,1988)
retorna TRUE
checkdate(2, 29, 2019)
retorna FALSE, pois 2019 não é bissexto
checkdate(2,29,2020)
retorna TRUE, pois 2020 é ano bissexto
Exemplo de checkdate
O script abaixo pede dia, mês e ano ao usuário e verificar se tal data é válida ou não:<html> <head> <title>Apostila PHP Progressivo</title> </head> <body> <form action="" method="get"> Dia<input type="text" name="day" /><br /> Mês<input type="text" name="month" /><br /> Ano<input type="text" name="year" /><br /> <input type="submit" name="submit" value="Testar" /> </form> <?php $dia = $_GET['day']; $mes = $_GET['month']; $ano = $_GET['year']; if(checkdate($mes, $dia, $ano)) echo 'Data válida'; else echo 'Data inválida'; ?> </body> </html>