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