Foros del Web » Programando para Internet » PHP »

Comparas fecha actual con una de la BD

Estas en el tema de Comparas fecha actual con una de la BD en el foro de PHP en Foros del Web. Hola a todos tengo una consulta para obtener los datos de una tabla de mi Bd... y estoy trabajando con el siguiente codigo para comparar ...
  #1 (permalink)  
Antiguo 02/02/2012, 14:01
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Comparas fecha actual con una de la BD

Hola a todos tengo una consulta para obtener los datos de una tabla de mi Bd...
y estoy trabajando con el siguiente codigo para comparar fechas
Código PHP:
<? 
        $fechaactual 
Date("d/m/Y");
$fechaevento $row_alumnos['fechacierre'];
if (
$fechaactual >= $fechaevento) {
  echo 
'<img src="img/cerrado.png" width="25" height="25" border="0"  alt="" />';
} else {
  echo 
'<img src="img/abierto.png" width="25" height="25" border="0"  alt="" />';
}

  
?>
tengo las siguientes fechas en mi tabla
01/01/2012 ---- muestra la imagen cerrado
02/02/2012 ---- muestra la imagen cerrado
03/02/2012 ---- muestra la imagen abierto
05/12/2012 ---- muestra la imagen abierto


Hasta aqui todo bien pero no entiendo si pongo

01/05/2012
Me muestra el icono cerrado
y debería ser abierto que esta mal ... alguien podría ayudarme
  #2 (permalink)  
Antiguo 02/02/2012, 14:05
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 2 meses
Puntos: 175
Respuesta: Comparas fecha actual con una de la BD

podrias usar el DateTime() como referencia para hacer comparaciones de fechas... aqui hay documentacion que pdoria serte util.. no es la solucion pero si es un camino

http://php.net/manual/es/datetime.diff.php


Código PHP:
Ver original
  1. <?php
  2. $date1 = new DateTime("now");
  3. $date2 = new DateTime("tomorrow");
  4.  
  5. var_dump($date1 == $date2);//false
  6. var_dump($date1 < $date2);//true
  7. var_dump($date1 > $date2);//false
  8. ?>
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #3 (permalink)  
Antiguo 02/02/2012, 15:00
 
Fecha de Ingreso: enero-2012
Mensajes: 17
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: Comparas fecha actual con una de la BD

usa la fecha al reves date(Y-m-d) ya que estas comparando strings
  #4 (permalink)  
Antiguo 02/02/2012, 17:00
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Respuesta: Comparas fecha actual con una de la BD

Cita:
Iniciado por deathempire Ver Mensaje
usa la fecha al reves date(Y-m-d) ya que estas comparando strings
He cambiado como me indicas pero no he resulto el problema sigue igual
Nota: la fecha en mi Bd esta guardada como dd/mm/aa
  #5 (permalink)  
Antiguo 02/02/2012, 17:12
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Respuesta: Comparas fecha actual con una de la BD

Haciendo más pruebas veo que el error solo surge al elegir el primer dia del mes ...
1 de marzo 2012 sale cerrado
1 de mayo
1 de junio
....
que puedo hacer para evitarlo????
  #6 (permalink)  
Antiguo 02/02/2012, 19:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Comparas fecha actual con una de la BD

Cita:
Iniciado por Briss Ver Mensaje
He cambiado como me indicas pero no he resulto el problema sigue igual
Nota: la fecha en mi Bd esta guardada como dd/mm/aa
Si estás guardando la fecha en un VARCHAR con ese formato, no te servirá para realizar consultas de ningún tipo.
Deben estar como DATE y ser almacenadas en su formato universal: AAAA/MM/DD.
Si luego quieres verlas como DD/MM/AAAA, eso se hace con la consulta, usando DATE_FORMAT() sobre ese campo. Pero las operaciones de la base deben hacerse siempre con sus tipos de dato natural.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 02/02/2012, 19:49
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Respuesta: Comparas fecha actual con una de la BD

Gracias por tu respuesta lo que pasa es que la fecha la mando a insertar despues de elegirla de un calendario Jquery y solo la puedo guardar en la bd en ese formato d/m/a

funciona bien solo que con el primer día del mes no me arroja bien la comparación siempre me da que es MENOR... alguna sugerencia
  #8 (permalink)  
Antiguo 03/02/2012, 11:07
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 5 meses
Puntos: 12
Respuesta: Comparas fecha actual con una de la BD

Que puedo hacer para que al elegir el primer día del mes la condición no sea errronea???
  #9 (permalink)  
Antiguo 03/02/2012, 11:10
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 2 meses
Puntos: 175
Respuesta: Comparas fecha actual con una de la BD

emmm.. sera que haz visto lo que postee mas arriba? bue
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #10 (permalink)  
Antiguo 03/02/2012, 11:12
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Comparas fecha actual con una de la BD

pruebalo con time();

pero con las fechas es mucho mejor claro esta que si lo guardas en varchar no te va a servir guardalo con date como ya te an dicho

si solo la puedes guardar en ese formato , eso a que es debido?

Última edición por webankenovi; 03/02/2012 a las 11:21

Etiquetas: actual, bd, fecha, tabla
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:41.