Foros del Web » Programando para Internet » PHP »

problema al comparar dos fechas :(

Estas en el tema de problema al comparar dos fechas :( en el foro de PHP en Foros del Web. mi problema es que comparo dos fechas y en caso de que no sean iguales me lo compara bien y me da el resultado desedo,pero ...
  #1 (permalink)  
Antiguo 21/08/2004, 10:20
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
problema al comparar dos fechas :(

mi problema es que comparo dos fechas y en caso de que no sean iguales me lo compara bien y me da el resultado desedo,pero si son iguales me lo trata como si no coincidiera,este codigo es muy parecido a uno que encontre por aqui :D

Código PHP:
$fecha1 $datos[fecha_ahora];
$fecha2 $datos[Fecha];

$f1 explode('-',$fecha1);
$dia1 $f1[0];
$mes1 $f1[1];
$ano1 $f1[2];

$f2 explode('-',$fecha2);
$dia2 $f2[0];
$mes2 $f2[1];
$ano2 $f2[2];

$time1 mktime (0,0,0,$mes1,$dia1,$ano1);
$time2 mktime (0,0,0,$mes2,$dia2,$ano2); 
fecha_ahora la saco con un CURDATE,la comparacion la hago asi:

Código PHP:
if ($fecha1 $fecha2) { 
echo
"fecha1 es mas peque que la fecha2";
}
elseif(
$fecha1 >= $fecha2) { 
echo
"fecha1 es mayor  o igual que fecha2";

si son iguales me da el resultado 1


gracias
  #2 (permalink)  
Antiguo 21/08/2004, 17:48
 
Fecha de Ingreso: enero-2004
Mensajes: 235
Antigüedad: 13 años, 11 meses
Puntos: 0
Desacuerdo

El problema lo tienes en las variables, substituye $fecha1 por $time1 y lo mismo com $fecha2 con $time2, listo.

if ($time1 < $time2) {
echo"fecha1 es mas peque que la fecha2";
}
elseif($time1 >= $time2) {
echo"fecha1 es mayor o igual que fecha2";
}


Por cieto, para el tema de las fechas tambien puedes usar strtotime y te puede quedar de esta forma mas reducida:

$time1 = strtotime($fecha1);
$time2 = strtotime($fecha2);

if ($time1 > $time2) echo 'Fecha1 es mayor que fecha2';
elseif ($time < $time2 ) echo 'Fecha2 es mayor que fecha1';
else echo 'Las dos fechas son iguales';
Saludos

Última edición por jmaribau; 21/08/2004 a las 17:56
  #3 (permalink)  
Antiguo 22/08/2004, 03:22
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
gracias :D
  #4 (permalink)  
Antiguo 22/08/2004, 05:52
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
nop no era eso :( he puesto lo he puesto como dices y no me compara las fechas,me dice siempre que $time1 < $time2 :(:(:(
  #5 (permalink)  
Antiguo 22/08/2004, 15:06
 
Fecha de Ingreso: enero-2004
Mensajes: 235
Antigüedad: 13 años, 11 meses
Puntos: 0
Indicame que dos fechas comparas para ejecutar un código de ejemplo y poder ver lo que mencionas.

Gracias
  #6 (permalink)  
Antiguo 22/08/2004, 15:17
 
Fecha de Ingreso: enero-2004
Mensajes: 235
Antigüedad: 13 años, 11 meses
Puntos: 0
Aqui te pongo el código que he usado para comprovar que funcionara correctamente:
Código PHP:
<?php

// EJEMPLO 1

$datos['fecha_ahora']='01-01-1970';
$datos['Fecha']='02-01-1970';

$fecha1 $datos['fecha_ahora'];
$fecha2 $datos['Fecha'];

$f1 explode('-',$fecha1);
$dia1 $f1[0];
$mes1 $f1[1];
$ano1 $f1[2];

$f2 explode('-',$fecha2);
$dia2 $f2[0];
$mes2 $f2[1];
$ano2 $f2[2];

$time1 mktime (0,0,0,$mes1,$dia1,$ano1);
$time2 mktime (0,0,0,$mes2,$dia2,$ano2);


echo 
'Fecha1='.$fecha1.' Fecha2='.$fecha2.'<br>';
if (
$time1 $time2) echo 'Fecha1 es mayor que fecha2';
elseif (
$time1 $time2 ) echo 'Fecha2 es mayor que fecha1';
else echo 
'Las dos fechas son iguales';


// EJEMPLO REDUCIDO

$fecha1 $datos['fecha_ahora']='01-01-95';
$fecha2 $datos['Fecha']='01-01-80';

$time1 strtotime($datos['fecha_ahora']);
$time2 strtotime($datos['Fecha']);

echo 
'<br>Fecha1='.$fecha1.' Fecha2='.$fecha2.'<br>';
if (
$time1 $time2) echo 'Fecha1 es mayor que fecha2';
elseif (
$time1 $time2 ) echo 'Fecha2 es mayor que fecha1';
else echo 
'Las dos fechas son iguales';

?>
  #7 (permalink)  
Antiguo 22/08/2004, 16:18
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
los datos que uso son Fecha_ahora la saco con un CURDATE y fecha de la BD,probare el ejemplo haber si la estaba cagando en algo :D gracias
  #8 (permalink)  
Antiguo 22/08/2004, 16:27
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 13 años, 6 meses
Puntos: 0
gracias a tu ejemplo me di cuenta de que hera un error en la consulta,muchas gracias ^^ ahora ya me funciona perfectamente :D
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 19:01.