quarta-feira, 20 de maio de 2009

Validar datas no PHP

 
 

Enviado para você por Penha através do Google Reader:

 
 


Date no PHP

O PHP fornece muitas funcionalidades com a classe datetime. No entanto, essa classe não aborda validação, isto é, que formato essa data é recebida. A função strtotime() do PHP pode receber vários formatos de data legíveis aos seres humanos. O problema com strtotime() é que não existe uma maneira de atender a diferentes formatos de data, por exemplo, 05/12/2009. Dependendo de que país é o usuário, esta data pode ter vários significados, por exemplo, o mês dia e ano. Ao dividir a data em seus respectivos campos, cada segmento pode ser verificado com a função checkdate do PHP. A função abaixo valida uma data através da divisão da data por ano, mês e dia, usando-os como argumento para checkdate:

 < ?php     /**     *     * Validate a date     *     * @param    string    $date     * @param    string    format     * @return    bool     *     */     function validateDate( $date, $format='YYYY-MM-DD')     {         switch( $format )         {             case 'YYYY/MM/DD':             case 'YYYY-MM-DD':             list( $y, $m, $d ) = preg_split( '/[-\.\/ ]/', $date );             break;              case 'YYYY/DD/MM':             case 'YYYY-DD-MM':             list( $y, $d, $m ) = preg_split( '/[-\.\/ ]/', $date );             break;              case 'DD-MM-YYYY':             case 'DD/MM/YYYY':             list( $d, $m, $y ) = preg_split( '/[-\.\/ ]/', $date );             break;              case 'MM-DD-YYYY':             case 'MM/DD/YYYY':             list( $m, $d, $y ) = preg_split( '/[-\.\/ ]/', $date );             break;              case 'YYYYMMDD':             $y = substr( $date, 0, 4 );             $m = substr( $date, 4, 2 );             $d = substr( $date, 6, 2 );             break;              case 'YYYYDDMM':             $y = substr( $date, 0, 4 );             $d = substr( $date, 4, 2 );             $m = substr( $date, 6, 2 );             break;              default:             throw new Exception( "Formato de data inválido" );         }         return checkdate( $m, $d, $y );     } ?> 

Exemplo de uso

 < ?php         echo validateDate( '2007-04-21' ) ? 'correto'. "\n" : 'errado' . "\n";         echo validateDate( '2007-21-04', 'YYYY-DD-MM' )  ? 'correto'. "\n" : 'errado' . "\n";         echo validateDate( '2007-21-04', 'YYYY/DD/MM' )  ? 'correto'. "\n" : 'errado' . "\n";         echo validateDate( '21/4/2007', 'DD/MM/YYYY' )  ? 'correto'. "\n" : 'errado' . "\n";         echo validateDate( '4/21/2007', 'MM/DD/YYYY' )  ? 'correto'. "\n" : 'errado' . "\n";         echo validateDate( '20070421', 'YYYYMMDD' )  ? 'correto'. "\n" : 'errado' . "\n";         echo validateDate( '04212007', 'YYYYDDMM' )  ? 'correto'. "\n" : 'errado' . "\n"; ?> 

Post original: Validate Date Using PHP

Isso pode lhe interessar:


Já conhece o meu outro blog? O endereço é o: CSS no Lanche

Você ainda não está me seguindo no Twitter, o que está esperando para fazer isso?


Validar datas no PHP


 
 

Coisas que você pode fazer a partir daqui:

 
 
TwitThis
Share |

0 comentários:

;

Pesquisa na WEB

Carregando...

assine o feed

siga no Twitter

Postagens

acompanhe

Comentários

comente também