Foros del Web » Programando para Internet » PHP »

problema con date()

Estas en el tema de problema con date() en el foro de PHP en Foros del Web. Quiero conseguir algo tan elemental como saber la fecha de hoy para luego restarle otra fecha que obtendré de una base de datos. Supuestamente con ...
  #1 (permalink)  
Antiguo 20/08/2006, 05:30
Avatar de tognaco  
Fecha de Ingreso: noviembre-2004
Mensajes: 147
Antigüedad: 19 años, 4 meses
Puntos: 1
problema con date()

Quiero conseguir algo tan elemental como saber la fecha de hoy para luego restarle otra fecha que obtendré de una base de datos. Supuestamente con date() lo podría conseguir fácilmente, pero me sale algo raro. Si escribo

Código PHP:
$fecha_actual date("Y-m-d");
echo 
$fecha_actual 
el resultado que obtengo es: 2006-08-2013247.9166667

Es decir, al final de la fecha le añade algo más que yo no quiero que le añada. ¿Que puedo hacer para evitarlo? Gracias por adelantado.
  #2 (permalink)  
Antiguo 20/08/2006, 05:54
Avatar de tognaco  
Fecha de Ingreso: noviembre-2004
Mensajes: 147
Antigüedad: 19 años, 4 meses
Puntos: 1
mejor con mysql

Estoy pensando que con lo anterior no voy a conseguir lo que quiero. En realidad, no voy a ponder usarlo porque la fecha a comparar está dentro de la base de datos. por lo tanto quiero hacer algo así como

Código PHP:
$fecha_actual=date("Y-m-d");
$resultado=mysql_query("DELETE FROM actividad WHERE($fecha_actual - actividad.fecha>=15) ",$c); 
Es decir, que si la actividad ha sido creada hace más de 15 días, el script la borre. Ni que decir tiene que con lo que he puesto arriba no consigo absolutamente nada. ¿Alguna sugerencia? Gracias anticipadas.
  #3 (permalink)  
Antiguo 20/08/2006, 11:14
Avatar de tognaco  
Fecha de Ingreso: noviembre-2004
Mensajes: 147
Antigüedad: 19 años, 4 meses
Puntos: 1
Pues me he sorprendido a mí mismo resolviéndolo yo solo. La sentencia SQL más abajo sirve para seleccionar los registros de una tabla cuya antiguedad sea superior en 15 días con respecto a la fecha en la que se crearon (en cuyo momento se inscribe dentro de la tabla el valor fecha en formato date)

Código PHP:
$resultado=mysql_query("SELECT titulo, asignatura, fecha FROM actividad WHERE (DATEDIFF(CURDATE(),actividad.fecha)>='15' AND actividad.completada='0') ORDER BY actividad.fecha"); 
  #4 (permalink)  
Antiguo 21/08/2006, 03:27
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 22 años, 3 meses
Puntos: 3
Por si te sirve de complemento y te ahorras tamaña consulta.
date() tiene una serie de elementos a considerar. En tu caso, te retorna eso porque estás utilizando "caracteres de formato" no propios para lo que deseas. Supongo que estás trabajando con MySQL, si es así por defecto las fechas en este motor tienen el formato "yyyy-mm-dd". Por lo tanto si quieres que lo que resulta de tu PHP posea el mismo formato, deberás poner:

Código PHP:
<?php
  $fecha 
date("Y-m-d"time());
  echo 
$fecha;
?>
Ahora verás que retorna lo que deseas y no tienes necesidad de esa consulta tan engorrosa.
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #5 (permalink)  
Antiguo 21/08/2006, 04:23
Avatar de tognaco  
Fecha de Ingreso: noviembre-2004
Mensajes: 147
Antigüedad: 19 años, 4 meses
Puntos: 1
OK, muchas gracias, efectivamente ahora sí funciona.
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:07.