Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/04/2009, 13:34
Avatar de Erikfrancisco
Erikfrancisco
 
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Respuesta: validacion de fecha con php

esta es la tercera parte espero que ahora si acabe les pasaria los dos archivos a un servidor pero no tengo :_(
Código PHP:
   /*-----------Separamos en partes la fecha para poder evaluar cada una de ellas por separado------------*/
   
$partes explode'-'$fecha );

   
/*--------Contamos el número de partes con que cuenta la fecha para saber que hacer dependiendo--------*/
    /*------------del número de estas, el formato correcto debera de ser: parte1-parte2-parte3-------------*/
    /*---------------------------------es decir, debe haber sólo 3 partes----------------------------------*/
   
$cant count$partes );

   if ( 
$cant == )
   {        
      if( 
$tipo == // Si la fecha debe comenzar por día
      
{
           
$uno valida_dia$partes[0], $garabato$color );
         
$falta $a// Como solo se enviaron 2 partes falta el año
      
}
      else
      {
         
$uno valida_anio$partes[0], $garabato$color );
         
$falta $d_m// Como solo se enviaron 2 partes falta el dia
      
}

        
$dos valida_mes$partes[1], $garabato$color ); // Ahora evaluamos el mes

        // Si no se encontraron errores en dia y mes nos aseguramos que el día sea válido para el mes
        
if( $tipo == && ( !$uno[0] && !$dos[0] ) )
      {
           if( 
$uno[1] > 29 && $dos[1] == '02' // ERROR: El mes de febrero nunca tiene más de 29 días
               
$uno[1] = colorea_cadena$uno[1], $color );

         
// ERROR: Los meses de Abril, Junio, Septiembre y Noviembre no tienen 31 días
            
if( $uno[1] == 31 && ( $dos[1] == '04' || $dos[1] == '06' || $dos[1] == '09' || $dos[1] == '11' ) )
               
$uno[1] = colorea_cadena$uno[1], $color );
      }

      
$fecha $uno[1]."-".$dos[1]."-".$falta;

      
$validada[] = 1;
      
$validada[] = $fecha;

      return 
$validada;
   }
   
/*/////////////////////////////////////////////|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
   
elseif ( $cant == // Si se enviaron las tres partes
   
{
      
// Damos formato a $dia, $mes y $anio para que se correspondan con el tipo a evaluar
      
if( $tipo == )
      {
         
$dia  $partes[0];
         
$mes  $partes[1];
         
$anio $partes[2];
      }
      else
      {
         
$dia  $partes[2];
         
$mes  $partes[1];
         
$anio $partes[0];
      }

      
$dia  valida_dia$dia$garabato$color );
      
$mes  valida_mes$mes$garabato$color );
      
$anio valida_anio$anio$garabato$color );

      if( 
$dia[0] || $mes[0] || $anio[0] ) // ERROR: Se encontraron errores en las partes de la fecha
      
{
         if( 
$tipo == )
            
$fecha $dia[1]."-".$mes[1]."-".$anio[1];
         else
            
$fecha $anio[1]."-".$mes[1]."-".$dia[1];

         
$validada[] = 1;
         
$validada[] = $fecha;

         return 
$validada;
      }
      else
        {
         
$valida checkdate$mes[1], $dia[1], $anio[1] ); // Válidamos la fecha

         
if( $tipo == )
            
$fecha $dia[1]."-".$mes[1]."-".$anio[1];
         else
            
$fecha $anio[1]."-".$mes[1]."-".$dia[1];

         if( !
$valida // ERROR: Fecha inválida
         
{
            
$validada[] = 1;
            
$validada[] = $fecha;

            return 
$validada;
         }
         else 
// Si la fecha es valida
         
{
               if( 
$tipo == )
               
$fecha $anio[1]."-".$mes[1]."-".$dia[1];

            
$validada[] = 0;
            
$validada[] = $fecha;

            return 
$validada;
         }
        }
   }
    
/*/////////////////////////////////////////////|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
   
elseif( $cant )
   {
      
$fecha colorea_cadena$fecha$color );

      
$validada[] = 1;
      
$validada[] = $fecha;

      return 
$validada// ERROR: La fecha no tiene un formato correcto
   
}
}
?>