Foros del Web » Programando para Internet » PHP »

Comparar dos fechas

Estas en el tema de Comparar dos fechas en el foro de PHP en Foros del Web. Haber si me podeis ayudar con esto Tengo un formulario donde escojo dos fechas lo que quiero es comprobar que la fecha 1 es anterior ...
  #1 (permalink)  
Antiguo 20/10/2009, 11:50
 
Fecha de Ingreso: marzo-2009
Mensajes: 221
Antigüedad: 15 años, 1 mes
Puntos: 0
Comparar dos fechas

Haber si me podeis ayudar con esto
Tengo un formulario donde escojo dos fechas lo que quiero es comprobar que la fecha 1 es anterior a la fecha 2. Las fechas estan en formato (YYYY/MM/DD)

Queria saber si de esta forma esta bien hecho, me han ido slaiendo fallos y he ido cambiando cosas, actualmente me da error en la linea

var f1 = new Date($fecha1[0], $fecha1[1], $fecha1[2]);

Parse error: parse error in /srv/www/htdocs/javi/GestCamping/WEB_INF/nuevaficha.php on line 394

Código PHP:
<?php
    $fecha1 
explode("/"$fecha_ent);
?>
<?php
    $fecha2 
explode("/"$fecha_sal);

     var 
f1 = new Date($fecha1[0], $fecha1[1], $fecha1[2]);
    
     var 
f2 = new Date($fecha2[0], $fecha2[1], $fecha2[2]);
             
     
$aux f1.getTime() - f2.getTime();
             
     if(
$aux<0){
 
?>
         <script language="JavaScript">
            alert("La fecha de entrada no es correcta.");
            document.location=('../nuevaficha.php');
        </script>
  #2 (permalink)  
Antiguo 20/10/2009, 11:52
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Comparar dos fechas

errmmm revisa bien que estas asiendo tienes codigo javascript metido dentro de php y cosas raras ...
te recomiendo que revises un poco tu codigo separes bien como va y vuelvas a preguntar :B

saludos!
  #3 (permalink)  
Antiguo 20/10/2009, 11:57
 
Fecha de Ingreso: marzo-2009
Mensajes: 221
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Comparar dos fechas

Ya se que tengo Javascript dentro del php es para que salga una ventana de aviso en el caso de que la fecha1 sea posterior a la fecha2. Pero la parte del codigo Javascript empieza despues de cerrar el codigo php
  #4 (permalink)  
Antiguo 20/10/2009, 11:58
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Comparar dos fechas

var f1 = new Date($fecha1[0], $fecha1[1], $fecha1[2]);

var f2 = new Date($fecha2[0], $fecha2[1], $fecha2[2]);

eso no existe en php ...

saludos!

recuerda que las variables no se definen como en javascript.. se usan con $ <--
  #5 (permalink)  
Antiguo 20/10/2009, 12:00
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Comparar dos fechas

f1.getTime() <-- eso es de javascript tb =B
  #6 (permalink)  
Antiguo 20/10/2009, 12:27
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Comparar dos fechas

porque no pruebas con algo mucho mas simple

if($fecha1>=$fecha2)
echo "la mayor es ".$fecha1;
else
echo "la mayor es ".$fecha2;

esta forma compara textos pero debido a que el formato es YYYY/mm/dd la estructura principal indica que inicialmente compara en texto el año el mes y el dia (esto nunca falla)
pero la condicion es que esten estructurados igual y con los mismos simbolos de separacion osea ambos con diagonal o con guion ...

saludos
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #7 (permalink)  
Antiguo 20/10/2009, 12:27
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Comparar dos fechas

porque no pruebas con algo mucho mas simple

if($fecha1>=$fecha2)
echo "la mayor es ".$fecha1;
else
echo "la mayor es ".$fecha2;

Lo se, lo se; de esta forma se compara en modo texto, pero por la estructura que manejas YYYY/MM/DD es mas fácil de trabajar y no hay problema; la única condición es que ambas fechas utilicen el mismo separador (diagonal o guion o el que manejes...)
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810

Última edición por Avatar810; 20/10/2009 a las 12:35
  #8 (permalink)  
Antiguo 21/10/2009, 10:24
 
Fecha de Ingreso: marzo-2009
Mensajes: 221
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Comparar dos fechas

Perdon me habia liafo es que anteriormente tenia esa como una funcion de javascript y la quise reutilizar y la lie

Entonces usando esto:

if($fecha1>=$fecha2)
echo "la mayor es ".$fecha1;
else
echo "la mayor es ".$fecha2;

Compara bien no hace falta nada mas, yo me estaba complicando con esto


$fecha1 = explode("/", $fecha_ent);

$fecha2 = explode("/", $fecha_sal);

$inicio = gregoriantojd($fecha1[1], $fecha1[2], $fecha1[0]);
$fin = gregoriantojd($fecha2[1], $fecha2[2], $fecha2[0]);

$aux = abs($fin - $inicio);

Que por cierto no me sale me da aux = 0
  #9 (permalink)  
Antiguo 21/10/2009, 11:00
 
Fecha de Ingreso: mayo-2009
Mensajes: 25
Antigüedad: 15 años
Puntos: 0
Respuesta: Comparar dos fechas

Jawir, Intenta con eete codigo a ver si te funciona:

<?php
If ($fecha1[0] - $fecha2[0] < 0)
{
echo "<script language='javascript'>";
echo "alert("La fecha de entrada no es correcta.");";
echo "document.location=('../nuevaficha.php'); ";
echo "</script>";
}
else if ($fecha1[1] - $fecha2[1] < 0)
{
echo "<script language='javascript'>";
echo "alert("La fecha de entrada no es correcta.");";
echo "document.location=('../nuevaficha.php'); ";
echo "</script>";
}
else if($fecha1[2] - $fecha2[2] < 0)
{
echo "<script language='javascript'>";
echo "alert("La fecha de entrada no es correcta.");";
echo "document.location=('../nuevaficha.php'); ";
echo "</script>";
}
else{
//el resto de tu codigo aqui
}
?>

Me avisas q tal...
  #10 (permalink)  
Antiguo 21/10/2009, 11:33
 
Fecha de Ingreso: marzo-2009
Mensajes: 221
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Comparar dos fechas

Gracais a todos ya me funciona pero ahora como puedo hacer para comparar cn la fecha de hoy es decir que la fecha de entrada no puedo ser inferior al dia actual
  #11 (permalink)  
Antiguo 21/10/2009, 11:35
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Comparar dos fechas

Usando el strtotime o mktime y luego con time comparas.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #12 (permalink)  
Antiguo 21/10/2009, 12:40
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Comparar dos fechas

$hoy=date("Y-m-d");
y comparas de la misma manera..
revisa el manual de la funcion DATE para que veas el formato que le puedes dar a la fecha y se acomode a tus necesidades.
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 05:43.