Foros del Web » Programando para Internet » PHP »

Malditas fechas

Estas en el tema de Malditas fechas en el foro de PHP en Foros del Web. hola mi duda es la siguiente y creo que es cmlicado asi que agradecere si me pueden ayudar. Uso nase de datos pgsql estoy desarrollando ...
  #1 (permalink)  
Antiguo 23/11/2004, 12:02
Avatar de diegodnt  
Fecha de Ingreso: mayo-2004
Ubicación: Buenos aires
Mensajes: 227
Antigüedad: 19 años, 10 meses
Puntos: 0
Pregunta Malditas fechas

hola mi duda es la siguiente y creo que es cmlicado asi que agradecere si me pueden ayudar.
Uso nase de datos pgsql
estoy desarrollando una aplicacion que realiza lo siguiente
se crea un registro en una tabla de la bd que tien un campo que es fecha que es la fecha del dia en que se creo y es de tipo int
ese registro despues de los 90 dias de creacion debe cambiar
eso lo hara cion un boton que yo le diseñe que contandra la fecha del dia y segun esa fecha todos los registros que hayan pasado los 90 dias deben cambiar el problema es que no se como hacerle a esto de las fechas como le digo que segun el dia de hoy todos los que superen los 90 dias desde su crecion deben cambiar AYUDAAAAAAAAAAAAAAAAAAAAAA
NO me sale y kçlo re necesito YAAAAA
desde ya muchas gracias
Diegodnt
__________________
. Woo hoo When I feel heavy metal
  #2 (permalink)  
Antiguo 23/11/2004, 12:12
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 3 meses
Puntos: 1
Modificación Importante

Saludos.

En primer lugar ese campo "fecha" debería ser tipo DATE. Debes corregirlo

luego:

Código PHP:
$fecha_creacion $fecha;  //esta es la que viene de tu DB
list( $ano$mes$dia ) = split'[/.-]'$fecha_creacion );
$fecha_hoy date("Y-m-d");

$fecha_diferencia floor(abs(strtotime($fecha_hoy) - strtotime($fecha_creacion))/86400);

if (
$fecha_diferencia 90) {
  
/* haces el update de ese registro */
}else{
  echo 
"Registro dentro del parámetro";

Claro, esto debería estar dentro de un WHILE que va recorriendo tu tabla "REGISTROS" en donde se encuentra la fecha de creación.

Suerte
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #3 (permalink)  
Antiguo 23/11/2004, 12:18
Avatar de diegodnt  
Fecha de Ingreso: mayo-2004
Ubicación: Buenos aires
Mensajes: 227
Antigüedad: 19 años, 10 meses
Puntos: 0
si no te molesta mucho no me podrias decir que haces en cada lado de esa formula que pusistes ;)
__________________
. Woo hoo When I feel heavy metal
  #4 (permalink)  
Antiguo 23/11/2004, 12:33
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 3 meses
Puntos: 1
Código PHP:
//Nos aseguramos que esten bajo el mismo formato
//--------------------
$fecha_creacion $fecha;  //esta es la que viene de tu DB
list( $ano$mes$dia ) = split'[/.-]'$fecha_creacion ); //Separo en variables cada valor de la fecha
$fecha_hoy date("Y-m-d"); // Capturo la fecha actual
//---------------------

// strtotime = convierto ambas fechas a TIMEstamp ([url]http://ve.php.net/manual/es/function.strtotime.php[/url]) 
// 86400 = cantidad de segundos en 1 día. Te intere es en días verdad??
// abs = obtengo el valor absoluto de esa operación ([url]http://ve.php.net/manual/es/function.abs.php[/url])
// floor = Redondeo el resultado hacia abajo ([url]http://ve.php.net/manual/es/function.floor.php[/url]) 
Suerte
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #5 (permalink)  
Antiguo 24/11/2004, 08:23
Avatar de diegodnt  
Fecha de Ingreso: mayo-2004
Ubicación: Buenos aires
Mensajes: 227
Antigüedad: 19 años, 10 meses
Puntos: 0
La verdad me sirvio todo era justo lo que yo queria hacer pero no podia. Muchisimas gracias sos un CAPOOOOOOOOOO
Saludos Diegodnt
__________________
. Woo hoo When I feel heavy metal
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 21:38.