Foros del Web » Programando para Internet » PHP »

condicional de fechas no funciona bien

Estas en el tema de condicional de fechas no funciona bien en el foro de PHP en Foros del Web. Intento comparar la fecha actual con otra fecha pero no funciona bien, muestro el codigo que utilice. añadir que utilizo php7 en so linux @import ...
  #1 (permalink)  
Antiguo 02/07/2016, 04:19
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 12 años, 10 meses
Puntos: 5
condicional de fechas no funciona bien

Intento comparar la fecha actual con otra fecha pero no funciona bien, muestro el codigo que utilice.
añadir que utilizo php7 en so linux

Código PHP:
Ver original
  1. $fecha_comparar="30-05-2016";
  2. $fecha = new DateTime($fecha_comparar);
  3. $fecha->add(new DateInterval('P1D'));
  4. $fecha_comparar_antigua=$fecha->format('d-m-Y');
  5.  
  6. $fecha_actual_=date('d-m-Y');
  7. $fecha_actual=new DateTime($fecha_actual_);
  8. $fecha_comparar_actual=$fecha_actual->format('d-m-Y');
  9.                        
  10. //hice un echo al condicional y quedo asi
  11. //31-05-2016 <=02-07-2016      
  12. //es decir se tendria que cumplir no se esta cumpliendo el condicional     
  13. if($fecha_comparar_antigua<=$fecha_comparar_actual){
  14.      echo"entro";
  15. }else{
  16.      echo"no entro";
  17. }
  18.  
  19. //resultado no entro
  20. var_dump($fecha_comparar_antigua<=$fecha_comparar_actual);
  21. //bool(false);

Última edición por roboty; 02/07/2016 a las 04:44
  #2 (permalink)  
Antiguo 02/07/2016, 06:10
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 12 años, 10 meses
Puntos: 5
Respuesta: condicional de fechas no funciona bien

Hola al final lo solucione añadi estas dos lineas para poder crear el condicional.


Código PHP:
Ver original
  1. $f1 = DateTime::createFromFormat('d-m-Y', $fecha_comparar_antigua);
  2. $f2 = DateTime::createFromFormat('d-m-Y', $fecha_comparar_actual);
  3.  
  4. var_dump($f1<=$f2);
  5. //bool(true);

solo decir que no hace falta crear dos objetos de la clase Datetime para la hora actual vale de esta forma:
Código PHP:
Ver original
  1. $f2 = DateTime::createFromFormat('d-m-Y', date(d-m-Y));

Saludos
  #3 (permalink)  
Antiguo 02/07/2016, 11:44
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 8 meses
Puntos: 379
Respuesta: condicional de fechas no funciona bien

De hecho no es necesario que uses la función date, con que hagas una instancia de DateTime tienes el día o la hora actual
Código PHP:
Ver original
  1. $today = new Datetime();
  2.  
  3. print_r($today->format('Y-m-d H:i:s'));
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: condicional, fecha
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 02:01.