Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] validacion entre dos fechas

Estas en el tema de validacion entre dos fechas en el foro de PHP en Foros del Web. Hola buenas tardes. Necesito validar una condición de acuerdo a dos fechas, una que tendrá que dar el usuario y otra que deberá tomarse directo ...
  #1 (permalink)  
Antiguo 09/04/2013, 14:16
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 17 años, 1 mes
Puntos: 0
validacion entre dos fechas

Hola buenas tardes. Necesito validar una condición de acuerdo a dos fechas, una que tendrá que dar el usuario y otra que deberá tomarse directo del servidor.

Actualmente puedo hacer puedo hacer la operación de sumatoria de días a la fecha que se define por un combobox. Mi problema viene que quiero validar que si la fecha que da el usuario es menor a la fecha de hoy o la fecha actual imprima unas palabras y que si la fecha que da el usuario es mayor a la fecha de hoy o fecha actual diga otra cosa.

Pareciera sencillo mediante un if y else, mi problema viene en el código que tengo ya que no logro que ocurra esta condición.

Gracias por la ayuda

Código PHP:
<form id="form1" name="form1" method="post" action=""><label>Selecciona un dia</label>
<select name="dia">
      <script type="text/javascript">
        for(i=1; i<=31; i++){
    document.write("<option id="+i+" value="+i+">"+i+"</option>")
    }
    </script>
</select>
    <input type="submit" name="button" id="button" value="Enviar" />
</form>      


<?php
$m
=4;//numero del mes
$d=$_POST['dia'];//numero del dia
$y=2013;//numero del año

$fechaInicial=mktime(0,0,0,$m,$d,$y); //h.m.s.mes.dia.año

$lapso2//dias habiles a sumar
$diasTrans0//dias transcurridos  
$diasHabiles0;  

$feriados= array("15-4","16-4");//se define los feriados o dias a no contar d-m

while($diasHabiles<($lapso+1))  {   

    
$fecha$fechaInicial+($diasTrans*86400);
    
$diaSemanagetdate($fecha);  
        
        if(
$diaSemana["wday"]!=&& $diaSemana["wday"]!=6)  {
            
$feriado$diaSemana['mday']."-".$diaSemana['mon'];
            if(!
in_array($feriado,$feriados))   {
                    
$diasHabiles++; 
                }
        }  
    
$diasTrans++;  
}  

$fechaFinal$fechaInicial+(($diasTrans-1)*86400);   

$fechahoy date("d-m-Y");

echo 
"<br /><br />".$fechahoy." <b>Su declaracion sera para el: ".date("l d-m-Y",$fechaFinal)."</b> ";

if (
date("d-m-Y",$fechaFinal) > date("d-m-Y",$$fechahoy)){
echo 
"NO VA";
}
else {
    echo 
"si va";
}
?>
  #2 (permalink)  
Antiguo 09/04/2013, 14:59
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: validacion entre dos fechas

Listo amigos ya lo pude solucionar. Encontré que tenia un error en el formato de las fechas que estaba definiendo.

Les dejo el código como quedo para quien desee reutilizarlo. Saludos.

Cita:
<form id="form1" name="form1" method="post" action=""><label>Selecciona un dia</label>
<select name="dia">
<script type="text/javascript">
for(i=1; i<=31; i++){
document.write("<option id="+i+" value="+i+">"+i+"</option>")
}
</script>
</select>
<input type="submit" name="button" id="button" value="Enviar" />
</form>


<?php
$m=4;//numero del mes
$d=$_POST['dia'];//numero del dia
$y=2013;//numero del año

$fechaInicial=mktime(0,0,0,$m,$d,$y); //h.m.s.mes.dia.año

$lapso= 1; //dias habiles a sumar
$diasTrans= 0; //dias transcurridos
$diasHabiles= 0;

$feriados= array("15-4","16-4");//se define los feriados o dias a no contar d-m

while($diasHabiles<($lapso+1)) {

$fecha= $fechaInicial+($diasTrans*86400);
$diaSemana= getdate($fecha);

if($diaSemana["wday"]!=0 && $diaSemana["wday"]!=6) {
$feriado= $diaSemana['mday']."-".$diaSemana['mon'];
if(!in_array($feriado,$feriados)) {
$diasHabiles++;
}
}
$diasTrans++;
}

$fechaFinal= date("d-m-Y", ($fechaInicial+(($diasTrans-1)*86400)));

$fechahoy = date("d-m-Y");

echo "<br /><br />".$fechahoy." <b>Su declaracion sera para el: ".$fechaFinal."</b> ";

if ($fechaFinal >= $fechahoy){
//if (date("d-m-Y",$fechaFinal) > date("d-m-Y",$$fechahoy)){
echo "NO VA";
}
else {
echo "si va";
}
?>

Etiquetas: select, validacion
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:29.