Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/11/2017, 12:46
italo_pm
 
Fecha de Ingreso: enero-2011
Mensajes: 24
Antigüedad: 13 años, 4 meses
Puntos: 0
comparar fechas (ayer, hoy, manana)

Hola a todos, espero me puedan ayudar, tengo un problema con las fechas al momento de determinar si son anteriores a hoy, hoy y despues de hoy.

Practicamente, funciona en los casos de que las fechas en input al compararla con la fecha actual, no supere de dia (numero de dia), por ejemplo con los siguientes INPUT funciona correctamente.

teniendio en cuenta que hoy es igual a hoy = 02-11-2017


con input = 01/11/2017 retorna "anterior a hoy" que es correcto
con input = 02/11/2017 retorna "hoy" que es correcto
con input = 03/11/2017 retorna "despues de hoy" que es correcto
con input = 01/10/2017 anterior a hoy //correcto
con input = 02/10/2017 retorna "anterior a hoy" que es correcto

mientras que con el INPUT input = 03/10/2017 (tres de octubre)

retorna "despues de hoy" que es incorrecto ya que el "03/10/2017" como fecha es inferior al "02/11/2017", ese es el error que no logro corregir.

es decir, funciona casi todo, menos cuando el dia en INPUT (solo el dia) supera al dia definido en la variable hoy = 02-11-2017

Código PHP:
//$input = "01/11/2017"; //anterior a hoy //correcto
//$input = "02/11/2017"; //hoy //correcto
//$input = "03/11/2017"; //despues de hoy //correcto
//$input = "01/10/2017"; //anterior a hoy //correcto
//$input = "02/10/2017"; //anterior a hoy //correcto
$input "03/10/2017";  //despues de hoy //incorrecto

//$hoy = date("d-m-Y");
$hoy date("02-11-2017");

$input str_replace('/''-'$input);
$input date('d-m-Y'strtotime($input));

echo 
"INPUT: " $input "<br> HOY: " $hoy;

    if (
$input $hoy) { 
        
$cssclass "anterior a hoy";
    } else if (
$input == $hoy) { 
        
$cssclass "hoy";
    } else if (
$input $hoy) { 
        
$cssclass "despues de hoy";
    }  else {
        
$cssclass "nada de nada";
    }

    echo 
"<br><br> Resultado: " .$cssclass
con INPUT 01/11/2017 anterior a hoy //correcto

Código:
INPUT: 01-11-2017
HOY: 02-11-2017

Resultado: anterior a hoy
con input 02/11/2017 retorna hoy //correcto

Código:
INPUT: 02-11-2017
HOY: 02-11-2017

Resultado: hoy
con input 03/11/2017 despues de hoy //correcto

Código:
INPUT: 03-11-2017
HOY: 02-11-2017

Resultado: despues de hoy
con input 01/10/2017 anterior a hoy //correcto
1 de ocutbre, dia inferior a 2 y con diferente mes.

Código:
INPUT: 01-10-2017
HOY: 02-11-2017

Resultado: anterior a hoy

con input 02/10/2017 anterior a hoy //correcto
2 de ocutbre, mismo dia con diferente mes.

Código:
INPUT: 02-10-2017
HOY: 02-11-2017

Resultado: anterior a hoy
y este ultimo es donde da error

con input 03/10/2017 //despues de hoy //incorrecto

Código:
INPUT: 03-10-2017
HOY: 02-11-2017

Resultado: despues de hoy
que es incorrecto ya que el "03/10/2017" como fecha es inferior al "02/11/2017"

alguna sugerencia?

gracias anticipadas.

salud2

Última edición por italo_pm; 02/11/2017 a las 12:56