Foros del Web » Programando para Internet » PHP »

Fecha - Calculos de Proxima Fecha apagar....

Estas en el tema de Fecha - Calculos de Proxima Fecha apagar.... en el foro de PHP en Foros del Web. Hola alguno de vosotros tiene hecha una funcion mediante la cual se calcule cuando expira una cuenta ?? Como me aconsejais la manera mas facil ...
  #1 (permalink)  
Antiguo 06/10/2003, 12:12
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años, 7 meses
Puntos: 7
Fecha - Calculos de Proxima Fecha apagar....

Hola alguno de vosotros tiene hecha una funcion mediante la cual se calcule cuando expira una cuenta ?? Como me aconsejais la manera mas facil para calcular dos fechas, iria de mes en mes y de año en año. De año en año no hay problemas pero de mes en mes no se como se podria hacer lo mas facil posible para que saliera.
  #2 (permalink)  
Antiguo 06/10/2003, 12:27
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 21 años, 6 meses
Puntos: 2
Código PHP:
<?
function seg2tiempo($segundos){ //FUNCION DE MANOLOWEB
    
$tiempo=$segundos;
    
$signo=($tiempo<0) ?  "-" "+";
    
$tiempo=abs($tiempo);
    
$dias=floor($tiempo/86400);
    
$resto_dias=$tiempo 86400;
    
$horas=floor($resto_dias/3600);
    
$resto_horas=$resto_dias 3600;
    
$minutos=floor($resto_horas/60);
    
$resto_minutos=$resto_horas 60;
    
$segundos=floor($resto_minutos);
    return 
$signo.$dias." d&iacute;as, ".$horas." horas, ".$minutos." minutos, ".$segundos." segundos";
}

echo 
seg2tiempo(-846677);
?>
mira.... convierte los segundos (-846677) en una fecha cuenta atrass...


__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 18/10/2003 a las 21:02
  #3 (permalink)  
Antiguo 18/10/2003, 20:03
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años, 7 meses
Puntos: 7
Muchas gracias nuevo !!
  #4 (permalink)  
Antiguo 18/10/2003, 21:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Si el dato va a parar a un campo de una tabla (base de datos) .. (Msyql) .. tienes funciones del própio motor de BD (en SQL) para hacer ese típo de cálculos .. ejemplo (suponiendo un campo DATE de tu tabla):

DATE_ADD(NOW(), INTERVAL 30 DAY)

El "INTERVAL" se puede usar .. dias o meses .. o años .. o combinación de todo esto. NOW() es la fecha de hoy (con hora) y el DATE_ADD() se encarga de hacer el cálculo (según calendario) de la fecha en el intervalo indicado ..).

Si tuvieras que calcular X cuotas .. en lugar de usar NOW() .. deberías leer el la última fecha generada .. para aplicar el siguiente intervalo ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 19/10/2003, 07:24
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años, 7 meses
Puntos: 7
Aja eso lo que haria sumarle 30 días e insertarlo en el campo adecuado de la BD no cluster?

Por cierto Cluster, cuanto tiempo sin postearme !! , aunque hace tiempo que no posteo x php .

Saludos
  #6 (permalink)  
Antiguo 19/10/2003, 12:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Sip, Axo. así es .. Pero sólo era un comentario por si usabas Base de datos .. La mayoría de veces se intenta resolver problemas extrictamente de SQL con "PHP" .. cuando lo más optimo si el fin es la "Base de datos" es hacerlo via SQL lo más que se pueda.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 19/10/2003, 16:50
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años, 7 meses
Puntos: 7
Aja, aveces queremos resolver las cosas antes de que lleguen y nos precipitamos :S, muxas gracias a todos !! y si me surgen mas dudas ya os comento
  #8 (permalink)  
Antiguo 19/10/2003, 20:42
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 22 años, 3 meses
Puntos: 2
Pues...

Yo para sistemas de expiración de cuentas uso la función time() que inicia una cuenta en segundos desde el 1 de Enero de 1970.

Cuando ejecutas dicha función te devuelve los segundos que han pasado desde dicha fecha hasta el momento de ejecución de dicha función.

Por lo tanto si quieres que una cuente expire a los 30 días almacenas en un campo de tu BD el valor time() del momento en que se activó. ($row[tiempo])

Luego... cada que el usuario haga login, se comprueba que no haya expirado asi:

Código PHP:
$expira time() - $row[tiempo];
if(
$expira >= 2592000) {
    echo 
"Cuenta expirada.";

Es una simple resta... que determina si han pasado 30 días o no desde el momento en que activaste la cuenta. Tan sencillo como eso. Sin tener que hacer conversiones de fecha ni mucho menos.

Espero que te sirva de algo... saludos!
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
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 14:12.