Ver Mensaje Individual
  #11 (permalink)  
Antiguo 20/08/2014, 19:08
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Comparar fecha con vencimiento

Las palabras 'hoy' y 'aviso' son alias que utilizo para asignar a los valores devueltos por CURDATE() y DATE_SUB(venfecha, INTERVAL -10 DAY) y así poder tomarlos como lo ves líneas más abajo. También pudiste haberlo hecho con PHP, pero es más rápido hacerlo en la consulta.

Y bueno, con respecto a lo otro, el error es mío. Para comparar a las fechas de esa forma, primero hay que convertirlas al formato timestamp, lo cual puedes hacer desde PHP, pero con MySQL, también es posible.

Código PHP:
Ver original
  1. $query = mysqli_query($cone, 'SELECT *, UNIX_TIMESTAMP(CURDATE()) AS hoy, UNIX_TIMESTAMP(DATE_SUB(venfecha, INTERVAL -10 DAY)) AS aviso, UNIX_TIMESTAMP(venfecha) AS vence FROM img');
  2.  
  3. if (mysqli_num_rows($query)){
  4.     $row = mysqli_fetch_array($query);
  5.    
  6.     //Antes de que venza el plazo
  7.     if ($row['hoy'] >= $row['aviso'] && $row['hoy'] < $row['vence']){
  8.         echo 'El plazo está por expirar';
  9.     }
  10.  
  11.     //Cuando el plazo haya vencido
  12.     if ($row['hoy'] >= $row['vence']){
  13.         echo 'El plazo ha expirado';
  14.     }
  15. }

Lo único que hice fue aplicar a los datos en cuestión la función UNIX_TIMESTAMP y así obtengo la cantidad de segundos transcurridos desde las 00:00:00 horas del 1 de enero de 1970 hasta las fechas en cuestión. El asterisco del inicio puede desaparecer si es que no piensas tomar datos de otros campos de la tabla.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand