Retroceder   Foros del Web > Programación para sitios web > PHP
Crea un nuevo usuario o inicia sesión utilizando tu cuenta de Facebook
Connect with Facebook

Respuesta
 
Herramientas Desplegado
Antiguo 09-may-2008, 12:50   #1 (permalink)
farra se está ganando tu confianza
 
Avatar de farra
 
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 548
farra está desconectado
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....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  Responder Citando
Antiguo 09-may-2008, 12:53   #2 (permalink)
farra se está ganando tu confianza
 
Avatar de farra
 
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 548
farra está desconectado
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....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  Responder Citando
Antiguo 09-may-2008, 12:59   #3 (permalink)
farra se está ganando tu confianza
 
Avatar de farra
 
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 548
farra está desconectado
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....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  Responder Citando
Antiguo 09-may-2008, 13:07   #4 (permalink)
farra se está ganando tu confianza
 
Avatar de farra
 
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 548
farra está desconectado
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....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  Responder Citando
Respuesta
Calificación: Calificación de Tema: 2 votos, 3,00 de promedio.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code está Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado
Trackbacks está Desactivado
Pingbacks está Desactivado
Refbacks está Desactivado



La zona horaria es GMT -6. Ahora son las 18:34.
Políticas de Uso de Foros del Web


Message Board Statistics

SEO by vBSEO 3.3.0

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 97 98 99 100