Regresar   Foros del Web > Programación para sitios web > PHP

El registro es Gratis en Foros del Web
Respuesta
 
Herramientas Buscar en Tema Desplegado
Antiguo 09/05/08, 12:50:03   #1 (permalink)
farra tiene un saldo positivo de karma
 
Registrado: mar 2008
Ubicación: Aqui estoy
Mensajes: 153
farra is offline  
Pregunta Mega Validacion de 2 fechas!

Problema:

al mirar lo que quiero parece simple pero al final se complica...

lo que quiero es una funcion que valide 2 fechas de un evento..

1) fecha de inicio y fecha de finalizacion

obviamente la fecha de inicio debe ser mayor a la de finalizacion y ambas deben ser mayor a hoy...

la funcion quiero que me sirva para validar en un insert y para tirar mensajes de error en el formulario para eso uso: $result si es vacio es para el insert caso contrario es para el formulario...


Fecha de inicio:
1) la fecha de inicio debe ser mayor o igual a hoy
2) la fecha de inicio debe ser menor a la fecha final

Fecha Final:
1) la fecha final debe ser mayor o igual a hoy
2) la fecha final debe ser mayor a la fecha de inicio


Resultado:

Si $result = "" hacer esto:

$Cual es 1:
1) si cumple con todas las condiciones devolver la fecha, caso contrario devolver vacio

$Cual es 2:
1) si cumple con todas las condiciones devolver la fecha, caso contrario devolver vacio

$Cual es 3:
1) si cumple con todas las condiciones devolver SI, caso contrario devolver NO



Si $result = "valor" hacer esto:


$Cual es 1:
1) si cumple con todas las condiciones devolver la fecha, caso contrario devolver la Fecha

$Cual es 2:
1) si cumple con todas las condiciones devolver la fecha, caso contrario devolver la Fecha

$Cual es 3:
1) si cumple con todas las condiciones devolver SI, caso contrario devolver NO




Ejemplo de como llamar a la funcion:

echo validarfechas($fechaini,$fechafin,$cual,$result);


El valor de cual puede ser solo 1,2 o 3
El valor de result puede ser solo 'vacio' o Valor
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....
  Responder Con Cita
Antiguo 09/05/08, 12:53:13   #2 (permalink)
farra tiene un saldo positivo de karma
 
Registrado: mar 2008
Ubicación: Aqui estoy
Mensajes: 153
farra is offline  
Re: Mega Validacion de 2 fechas!

hasta ahora esto es lo que logre..

no me funciona... quiero que me tire el error correspondiente al lo que fallo...

Código PHP:

//////*****/////// Inicio valida fecha //////*****///////
function validafecha($fecha){
$Diar=date("d"strtotime($fecha));
$Mesr=date("m"strtotime($fecha));
$Anhor=date("Y"strtotime($fecha));
    if((
$Diar != "") && ($Mesr != "") && ($Anhor != "")){
        if (
checkdate($Mesr$Diar$Anhor)) {
            
$fechaValida=$fecha;
        } else {
            
$fechaValida=""// no es valida
        
}
    }
    return 
$fechaValida;
}
//////*****/////// Fin valida fecha //////*****///////


//////*****/////// Inicio funcion que valida las fechas de inicio y final //////*****///////
function validarfechas($fechaini,$fechafin,$cual,$result){
$valido="NO";
$hoy=date("Y-m-d");



// descomponemos las fechas
$fecarini=explode("/"$fechaini);
$fecarfin=explode("/"$fechafin);

//valida que sea una fecha
    
$Diar=$fecar[0];
    
$Mesr=$fecar[1];
    
$Anhor=$fecar[2];
    
$fecini=$Anhor."-".$Mesr."-".$Diar;
    
$fecinivalidada=validafecha($fecini); // devuelve fecha o vacio

    
$Diar2=$fecar[0];
    
$Mesr2=$fecar[1];
    
$Anhor2=$fecar[2];
    
$fecfin=$Anhor2."-".$Mesr2."-".$Diar2;
    
$fecfinvalidada=validafecha($fecfin); // devuelve fecha o vacio

// validar que la fecha de inicio sea mayor o igual a hoy
    
if(($fecinivalidada != "") && ($fecinivalidada >= $hoy)){ 
        
$feciniesmayorahoy="SI";
    }
// validar que la fecha final sea mayor o igual a hoy
    
if(($fecfinvalidada != "") && ($fecfinvalidada >= $hoy)){ 
        
$fecfinesmayorahoy="SI";
    }

// validar que la fecha final sea mayor o igual a la fecha de inicio
    
if(($fecinivalidada != "") && ($fecfinvalidada != "") &&  ($fecinivalidada >=  $fecfinvalidada)){
        
$fechafinesmayoroigualanini="SI";
    }else{
        
$fechafinesmayoroigualanini="NO";
    }

// Fecha Inicio
    
if($cual == "1"){
        
$fechares=$fecinivalidada;
    }
// Fecha Fin
    
if($cual == "2"){
        
$fechares=$fecfinvalidada;
    }
// Ambas Fechas
// devuelve SI o NO dependiendo que cumpla con todos los requisitos
    
if($cual == "ambos"){
            
$fechares=$fechafinesmayoroigualanini;
    }

 return 
$fechares;

}
//////*****/////// Fin funcion que valida las fechas //////*****/////// 
pero no funciona todavia
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....
  Responder Con Cita
Antiguo 09/05/08, 12:59:19   #3 (permalink)
farra tiene un saldo positivo de karma
 
Registrado: mar 2008
Ubicación: Aqui estoy
Mensajes: 153
farra is offline  
Re: Mega Validacion de 2 fechas!

Tengo un array de errores...

Código PHP:

$Errrores
"Debe completar este campo,La Fecha debe ser mayor a hoy, La fecha de inicio debe ser mayor a la fecha de finalizacion";

$Error=explode(","$Errrores); 
entonces en caso que haya en error quiero que me devuelva e error correspondiente en el campo correspondiente...
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....
  Responder Con Cita
Antiguo 09/05/08, 13:07:30   #4 (permalink)
farra tiene un saldo positivo de karma
 
Registrado: mar 2008
Ubicación: Aqui estoy
Mensajes: 153
farra is offline  
Re: Mega Validacion de 2 fechas!

El Formulario:

Código PHP:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
<!--
.style1 {font-size: 12px}
-->
</style>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
  <label>
  
  </label>
  <table width="90%" border="0">
    <tr>
      <td align="right">Iniciar:</td>
      <td align="left" class="style1"><label>
        <?
if(trim($_POST['fechaini']) != ""){ 
$fechacal=htmlentities($_POST['fechaini']);
}else{
$fechacal="Elejir Fecha >>";
}              

?><input type="text" name="fechaini" id="fechaini" value="<?php echo $fechacal?>" />
        </label>
          <label>dd/mm/yyyy</label></td>
    </tr>
    <tr>
      <td align="right">&nbsp;</td>
      <td align="left" class="style1"><?php if ($_POST['MM_Insert'] == "form1"){ ?>
<?php 
echo validarfechas($_POST['fechaini'],$_POST['fechafin'],"1",""); ?>
<?php 
?></td>
    </tr>
    <tr>
      <td align="right">Finalizar:</td>
      <td align="left" class="style1"><label>
        <?
if(trim($_POST['fechaini']) != ""){ 
$fechacal2=htmlentities($_POST['fechafin']);
}else{
$fechacal2="Elejir Fecha >>";
}

?><input type="text" name="fechaini" id="fechaini" value="<?php echo $fechacal?>" />
        </label>
          <label>dd/mm/yyyy</label></td>
    </tr>
    <tr>
      <td align="right">&nbsp;</td>
      <td align="left" class="style1"><?php if ($_POST['MM_Insert'] == "form1"){ ?>
<?php 
echo validarfechas($_POST['fechaini'],$_POST['fechafin'],"2",""); ?>
<?php 
?></td>
    </tr>
  </table>
  <p>
    <label>
    <input type="submit" name="button" id="button" value="Enviar" />
    </label>
    <input type="hidden" name="MM_Insert" id="MM_Insert" value="form1" />
  </p>
</form>
</body>
</html>
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....
  Responder Con Cita
Respuesta


Califica este Tema - Mega Validacion de 2 fechas!.

Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado Califica este Tema
Califica este Tema:

Reglas del foro
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está activado
Las caritas están activado
Código [IMG] está activado
Código HTML está desactivado


Todas las horas son GMT -6. La hora es 02:34:14.

Message Board Statistics

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96