PHP - ayuda urgente comparacion entre dos fechas no funciona

 
Vista:
sin imagen de perfil
Val: 68
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

ayuda urgente comparacion entre dos fechas no funciona

Publicado por hugo (42 intervenciones) el 18/02/2020 15:30:26
(POR ACCIDENTE PUSE PRIMERO EL MISMO TEMA EN UN FORO DE EXCEL POR SI LO VE UN ADMINISTRADOR NO SE COMO BORRARLO MIS DISCULPAS )

buenas tengo que pedirles que me ayuden

dejo parte del codigo que trato de verificar si la fecha es mayor o menor que "hoy" la fecha la saca de la base de datos (varchar)

algo estoy haciendo mal, busco las ultimas dos fechas con limit 2 y y meto un if luego del for para compara pero me muestra el mismo resultado para las dos cuando una fecha es menor que hoy y la otra es mayor puse un echo para verificar los resultados antes del if y las fechas las muestra bien

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$sql = "SELECT idturnos, ccpp, ubicacion, fecha, finturno FROM tablaconreguistros WHERE ccpp= '$canal'  ORDER BY idturnos DESC LIMIT 2";
 
$result = mysqli_query($conexion, $sql);
$total = mysqli_num_rows($result);
 
for ($i = 1; $i <= $total; $i++) {
 
    $fecha_actual = date("d/m/Y");
    $row = mysqli_fetch_array($result);
 
    $hola = $row['fecha'];
 
    $date1 = date($hola);
 
    echo " - ".$date1." - ".$fecha_actual;
 
    if($date1 > $fecha_actual) {
 
        echo " es mayor";
    } else {
 
        echo " menor que ";
    }

RESULTADO DEL FOR LAS FECHAS Y EL IF ME DICE QUE SON MAYOR LAS DOS

- 22/03/2020 - 18/02/2020 es mayor - 22/01/2020 - 18/02/2020 es mayor

AYUDA CUANTO ANTES POR FAVOR

TRATO DE BUSCAR LAS ULTIMAS DOS FECHAS Y QUE SI ALGUNA ES MAYOR QUE HOY NO SE MUESTRE DE LO CONTRARIO QUE SE MUESTREN LAS DOS

SALUDOS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

ayuda urgente comparacion entre dos fechas no funciona

Publicado por Julio (830 intervenciones) el 18/02/2020 16:35:15
Hola.

Las fechas son muy molestas y no se comparan tan fácilmente. Prueba esto (convertir las fechas con strtotime) adaptándolo a tu caso:

1
2
3
4
5
6
7
8
$fecha_actual = strtotime(date("d-m-Y H:i:00",time()));
$fecha_entrada = strtotime("19-11-2008 21:00:00");
 
if($fecha_actual > $fecha_entrada){
        echo "La fecha entrada ya ha pasado";
}else{
        echo "Aun falta algun tiempo";
}

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 68
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

ayuda urgente comparacion entre dos fechas no funciona

Publicado por hugo (42 intervenciones) el 18/02/2020 17:02:54
antes ya lo probe pero el sultado queda vacio ya sea al pasar el valor de la fecha actual como el de la variable al darle echo no muestra ningun valor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Fran
Val: 20
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

ayuda urgente comparacion entre dos fechas no funciona

Publicado por Fran (8 intervenciones) el 18/02/2020 17:27:33
Te sale mayor por que las fechas se están sumando con los minutos y segundos... en tu base de datos guarda la fecha como (date)

y usa lo que señalaron más arriba, "strtotime" pero sin los minutos y segundos así.

1
2
$fecha_actual = strtotime(date("d-m-Y",time()));
$fecha_entrada = strtotime("19-11-2008");

luego has la consulta if.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

ayuda urgente comparacion entre dos fechas no funciona

Publicado por joel (1269 intervenciones) el 18/02/2020 18:34:43
Hola Hubo, hay varias cosas a revisar en tu código...

En la linea 6 la variable $i creo que tendría que empezar por el 0.

En la linea 12, si $hola es un campo varchar, ahi no hace nada... no lo convierte en fecha.
Al no se ser un campo fecha no lo puedes comparar en la linea 17.

Con que formato esta guardada la fecha en la base de datos en el campo varchar?
dd/mm/yyyy o yyyy/mm/dd?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 68
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

ayuda urgente comparacion entre dos fechas no funciona

Publicado por hugo (42 intervenciones) el 18/02/2020 22:59:54
joel gracais por tu atencion

los datos viene de una planilla de excel ya con ese formato ej 01/01/2020 y como mencione ante esta en varchar en la base de datos

revisare $1

en la linea 12 en un primer momento pensé que aunque me mostrara los datos correctos con un echo a la hora del if no mantenían el mismo formato entre unas de las pruebas que hice no me tomaba row correctamente posteriormente me di cuenta que había un error pero ya había tratado de meterlo en una variable y lo deje asi por que se me hiso un poco mas comodo con la variable aunque tienes razón

fran gracias por tu atención

al tratar de exportar las fechas a la base de datos desde excel no me las reconoce si esta como date por eso lo deje como varchar supuse que despues con la funcion date o srt iba poder tratarlas igual aunque no funciono

saludos a ambos espero poder encontrar una solución pronto

si hubiera forma de mostrar el error que me están dando o la diferencia dentro el if por favor que alguien me diga osea mostrar lo que el if esta comparando de esta forma por ahy viendo el error podría buscar en Internet y tener mas posibilidades si ahora solo se que ahy un error pero no se cual

sorry tengo pésima ortografía defecto de niño !! que me acompañara hasta la tumba
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Fran
Val: 20
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

ayuda urgente comparacion entre dos fechas no funciona

Publicado por Fran (8 intervenciones) el 18/02/2020 23:24:00
Intenta cambiar la tabla de varchar a texto. y ve que te resulta... (cuidado con los espacios en blanco) Saludos.!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 68
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

ayuda urgente comparacion entre dos fechas no funciona

Publicado por hugo (42 intervenciones) el 19/02/2020 18:46:29
gracias a todos pude solucionarlo

en realiadad lo que estaba haciendo en primer momento si funcionaba lo que estaba mal es que la fecha cuando la cargaba en excel me remplazaba 19-02-2020 por 19/02/2020 tuve que hacerle dos cambio

ajustar para que me guarde con guion y colocar primero el año 2020-02-19

en la base de datos cuando hice estos cambios me permitio guardarlos como date por lo que obviamente cambie varchar por date, sin estos cambios en excel la fecha en tipo date siempre me quedaba como 00-00-0000

gracias a la ayuda y comentario de todos es que pude resolver este tema que me traia de los pelos

[b]ADJUNTO [/b ]codigo un poco mas limpio

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$sql = "SELECT idturnos, ccpp, ubicacion, fecha, finturno FROM tablaconreguistros WHERE ccpp= '$canal'  ORDER BY idturnos DESC LIMIT 2";
 
$result = mysqli_query($conexion, $sql);
$total = mysqli_num_rows($result);
// Imprimimos los resultados
 
for ($i = 1; $i <= $total; $i++) {
 
    $row = mysqli_fetch_array($result);
    $fecha_actual = date("Y-m-d");
 
    $fechaturno = $row['fecha'];
 
 
    if($fechaturno > $fecha_actual) {
 
        RESTO DEL CODIGO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar