Foros del Web » Programando para Internet » PHP »

Comparar dos datetime en php

Estas en el tema de Comparar dos datetime en php en el foro de PHP en Foros del Web. Expongo el tema: tengo lo siguiente: Código PHP: $filtro  =  "fechareserva BETWEEN '$fechaensql' AND '$fechaensqluno'" ; $consulta  =  "SELECT a, b, c, d, e, f, from tabla WHERE $filtro $fechaensql=$aaaa." - ".$mm." - ".$dd; $fechaensqluno=$aaaa." - ".$mm." - ".$dd;  ...
  #1 (permalink)  
Antiguo 29/06/2006, 06:49
 
Fecha de Ingreso: mayo-2006
Mensajes: 9
Antigüedad: 17 años, 11 meses
Puntos: 0
Comparar dos datetime en php

Expongo el tema:

tengo lo siguiente:

Código PHP:
$filtro "fechareserva BETWEEN '$fechaensql' AND '$fechaensqluno'";
$consulta "SELECT a, b, c, d, e, f, from tabla WHERE $filtro

$fechaensql=$aaaa."
-".$mm."-".$dd;
$fechaensqluno=$aaaa."
-".$mm."-".$dd; 
Siendo $fechareserva formato datetime

Lo realiza bien, pero si en $fechaensql le añado la hora del sistema:

Código PHP:
$hoy time();  
$hora_ahora=date("H:i:s",$hoy); 
$fechaensql=$aaaa."-".$mm."-".$dd." ".$hora_ahora
No me muestra ningún campo.

El kit de la cuestion es como compara entre dos fechas, incluyendo la hora de reserva, para que sólo muestre las reservas que existen a partir de la fehca registrada, incluyendo la hora.

Sino incluyo la hora en la consulta lo muestra bien,
  #2 (permalink)  
Antiguo 01/07/2006, 05:35
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Primero, se agradecería separaras las cosas... Esa "comparación" que mencionas se realiza en la BD directamente, lo importante es la SQL generada no el cómo la construyas; NO es necesario meter código PHP.

Bien, la documentación menciona que los valores a comparar deben ser del mismo tipo. Mencionas uno de los parámetros lo "construyes" como DATETIME (YYYY-MM-DD hh:mm:ss) pero se entiende no haces lo mismo con el otro y permanece como DATE (YYYY-MM-DD)... hay ciertas reglas de conversión que ignoro cómo se apliquen en este caso, te diría que no habría problema (ja!) pero te sugiero te asegures ambos parámetros sean del mismo tipo para no errarle.

Otra cosa... no es necesario pasarle (y por consecuencia, ni crear) la variable $hoy --que viene de un time()-- a la función date(), ese valor es tomado por default... además si ese valor --entiendo es el "instante" actual?-- es solo para utilizarlo en la query es mejor usar funciones nativas SQL, en este caso tienes CURDATE().

Entonces, primero vé las fechas generadas con PHP tengan el formato correcto (si es que es necesario utilizar PHP) y posteriormente verifica que, en efecto, tengas problema con dicha comparación.

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 23:28.