Foros del Web » Programando para Internet » PHP »

comparar fechas

Estas en el tema de comparar fechas en el foro de PHP en Foros del Web. Hola!! Necesito ayuda para hacer una sentencia: Tengo una tabla sql llamada oferta en la que hay un campo llamdo "fecha" que se refiere a ...
  #1 (permalink)  
Antiguo 14/02/2008, 10:47
 
Fecha de Ingreso: diciembre-2007
Mensajes: 46
Antigüedad: 16 años, 4 meses
Puntos: 0
comparar fechas

Hola!!

Necesito ayuda para hacer una sentencia:


Tengo una tabla sql llamada oferta en la que hay un campo llamdo "fecha" que se refiere a la fecha en la que se debe empezar a contar.
Tambien hay otro campo llamado "duracion oferta" que es el tiempo que esa oferta debe aparecer en la pagina web.

Cuando esos dias transcurran el campo "activa" debe pasar a ser blanco, ya que antes estaba a on.

Supongo que tengo que realizar una sentencia con la fecha de hoy, la"fecha" y que sea menor que la duracion, pero soy novata y no se como escribirlo...

Gracias
  #2 (permalink)  
Antiguo 14/02/2008, 11:14
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Re: comparar fechas

en mysql existe DATEDIFF()
DATEDIFF(expr,expr2)
DATEDIFF() devuelve el número de días entre la fecha de inicio expr y la de final expr2. expr y expr2
son expresiones de tipo date o date-and-time. Sólo las partes correspondientes a la fecha de cada
expresión se usan en los cáculos.
mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
-> 1
mysql> SELECT DATEDIFF('1997-11-31 23:59:59','1997-12-31');
-> -30
DATEDIFF() está disponible desde MySQL 4.1.1.


si lo quieres hacer con mysql deberias correr un script q actualice todas las ofertas almenos una vez pro dia
otra solucion seria por php q cuando se accede a un producto si esta "vencido" no muestre el boton ofertar por ejemplo
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 14/02/2008, 11:51
 
Fecha de Ingreso: diciembre-2007
Mensajes: 46
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: comparar fechas

Gracias.

Y si hago:

$query ="SELECT DATEDIFF('1997-11-31 23:59:59','1997-12-31') from oferta;"

¿como hago para usar lo que me devuelve la sentencia en php?
Porque normalmente uso mysql_query() pero si no me equivoco devuelve true o false.
  #4 (permalink)  
Antiguo 14/02/2008, 12:22
 
Fecha de Ingreso: diciembre-2007
Mensajes: 46
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: comparar fechas

Mejor adjunto el codigo que sera mas facil decirme que estoy haciendo mal.

Código PHP:
$query="select * form oferta where activa='on'";
  
$res mysql_query($query$link);
  
$row mysql_fetch_row($res);
  
$fecha1 date("Y-m-d H:i:s")
  
$fecha2 $row[1];
  
$dif $fecha1-$fecha2
  
while($row mysql_fetch_row($res))
  {
      if(
$dif $row[20])
      
$query2 "update oferta set activa='of' where usuario='$usuario'";
      
$res2 mysql_query($query2$link);
    } 
  #5 (permalink)  
Antiguo 14/02/2008, 13:15
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: comparar fechas

prueba con esto
Código PHP:
//creamos la consulta
$query="SELECT campo1, campo2, DATEDIFF(NOW,fecha) as dif FROM oferta WHERE activa='on'";
$res mysql_query($query$link);//ejecutamos
//mientras se crea el arreglo
while($row mysql_fetch_assoc($res)){
    if(
$row['dif']<=0){//averiguamos si la diferencia entre fechas ya ha vencido
        //creamos la actualización
        
$query2 "UPDATE oferta SET activa='of' WHERE usuario='$usuario'";
        
$res2 mysql_query($query2$link);//ejecutamos
    
}

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #6 (permalink)  
Antiguo 18/02/2008, 09:55
 
Fecha de Ingreso: diciembre-2007
Mensajes: 46
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: comparar fechas

Me da fallo en el while, alguien sabe por qué???

Código PHP:
  
 <? 
  
//creamos la consulta
$query="SELECT duracionOferta, DATEDIFF(NOW,fecha) as dif FROM oferta WHERE activa='on'";
$res mysql_query($query$link);//ejecutamos
//mientras se crea el arreglo
while($row mysql_fetch_assoc($res))
{
    if(
$row['dif']>$row['duracionOferta']){//averiguamos si la diferencia entre fechas ya ha vencido
        //creamos la actualización
        
$query2 "UPDATE oferta SET activa='of' WHERE usuario='$usuario'";
        
$res2 mysql_query($query2$link);//ejecutamos
    
}
}  
?>
Gracias
  #7 (permalink)  
Antiguo 18/02/2008, 10:00
 
Fecha de Ingreso: febrero-2008
Mensajes: 43
Antigüedad: 16 años, 2 meses
Puntos: 1
Re: comparar fechas

No te conectas al servidor mysql ni eliges la base de datos.
  #8 (permalink)  
Antiguo 18/02/2008, 10:10
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: comparar fechas

agrega el die par ver si marca algún error en la consulta
Código PHP:
$res mysql_query($query$link) or die('ERROR -> '.mysql_error()); 
y comentas.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #9 (permalink)  
Antiguo 18/02/2008, 10:15
 
Fecha de Ingreso: diciembre-2007
Mensajes: 46
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: comparar fechas

Si, me da este error:

ERROR -> Unknown column 'NOW' in 'field list'
  #10 (permalink)  
Antiguo 18/02/2008, 10:19
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: comparar fechas

Prueba esto

Código PHP:
$query="SELECT duracionOferta, DATEDIFF(fecha, now()) as dif FROM oferta WHERE activa='on'"
Saludos.
  #11 (permalink)  
Antiguo 18/02/2008, 10:23
 
Fecha de Ingreso: diciembre-2007
Mensajes: 46
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: comparar fechas

Ya está.

Muchisimas gracias!!!
  #12 (permalink)  
Antiguo 18/02/2008, 10:24
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: comparar fechas

usa
DATEDIFF(NOW(),fecha)
se me olvidaron los parentesis.
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 16:38.