Samuel Corradi

Blog

Validando formatos de data

programacao, php, desenvolvimento, autenticacao

Estou trabalhando duro na nova versão do PHP Coupé. Apesar de ainda não ser a versão 1.0, ela virá com boa parte dos recursos que estarão presentes na primeira versão estável do programa.

Entre as novidades está um seleto conjunto de métodos, prontos para uso, que agilizarão muito a vida do programador. Esses métodos vão desde tarefas de banco de dados à manipulação de strings, chegando até a criptografia.

Entre tais métodos, compartilho com vocês essa função para quem trabalha com datas.

Ela utiliza rápidas expressões regulares para nos dizer se a data foi digitada corretamente, ou qual formato de data foi inserido. Pode ser do tipo UNIX, Americano, Europeu ou o formato utilizado no MySQL para preencher campos do tipo DATETIME. Caso o formato não seja reconhecido, é retornado FALSE.

Ai vai o simples código:

function dateType($date) {
	if (eregi('^([0-1][0-9]|[2][0-3])(:([0-5][0-9])){1,2}$', $date)) return 'time';
	else if (eregi('^[0-9]{4}-([0][1-9]|[1][0-2])-([0][1-9]|[1-2][0-9]|[3][0-1])_[0-9]{2}:[0-9]{2}:[0-9]{2}$', $date)) return 'datetime';
	else if (eregi('^([0-9]{4})[/|-|.]([0][1-9]|[1][0-2])[/|-|.]([0][1-9]|[1-2][0-9]|[3][0-1])$', $date)) return 'unix';
	else if (eregi('^([0][1-9]|[1-2][0-9]|[3][0-1])[/|-|.]([0][1-9]|[1][0-2])[/|-|.]([0-9]{4})$', $date)) return 'dateeu';
	else if (eregi('^([0][1-9]|[1][0-2])[/|-|.]([0][1-9]|[1-2][0-9]|[3][0-1])[/|-|.]([0-9]{4})$', $date)) return 'dateus';
}

Lembrando que uma data é definida por seus valores numéricos, não os caracteres que os dividem. Sendo assim, nesse script, uma data poderá usar '/', '-' ou '.' para dividir seus valores que será validada.

Incluir comentário






0 mensagens enviadas

Últimos posts:

Destaques:

PHP Coupé - Desenvolvimento rápido e reaproveitável vForm - Validador universal de formulários

Programming and design by Samuel Corradi