Autor Tema: [Ayuda] Problemas con la funcion date()  (Leído 869 veces)

Desconectado Frank005

  • PHPero Experto
  • *****
  • Mensajes: 580
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
[Ayuda] Problemas con la funcion date()
« en: 10 de Noviembre de 2008, 02:43:40 am »
Hola...
Segun he leido, la funcion date() muestra, segun lo que querramos, la fecha actual. Por ejemplo, yo estoy haciendo un sistema, en el cual juego con la funcion date()

Es decir, un usuario compra un pack que despues de X dias ese pack debe quitarse.. Lo que he hecho para hacer eso es lo siguiente:

<?php
$dia2 
date(j) + 5// Se suma el dia actual + 5 dias mas
echo "Si al dia de hoy le sumamos 5 da ".$dia2."."
?>


En fin, la fecha en que el usuario compra el pack se guarda en la db y luego, a esa fecha de creacion le sumo 5 dias. Al pasar esos 5 dias yo quiero que el pack se quite. Hasta aca todo bien, lo unico que cuando llege al dia 28, 30 o 31 (depende el mes) se vuelva a 0.. Porque si por ej. un usuario compra el pack el dia 28 de un mes, al sumarle 5 da 33, y el dia 33 de un mes no existe.

¿Que debo hacer?

Comunidad PHPeros

[Ayuda] Problemas con la funcion date()
« en: 10 de Noviembre de 2008, 02:43:40 am »

Desconectado C-ChacK

  • PHPer@ Fijo
  • ***
  • Mensajes: 147
  • Karma: 3
  • --] chacKos [--
    • Ver Perfil
Re: [Ayuda] Problemas con la funcion date()
« Respuesta #1 en: 10 de Noviembre de 2008, 14:23:43 pm »
Debes hacer una condicion que controle los dias del mes para tener en cuenta hasta que dia debes sumar, por ejemplo, noviembre es de 30 dias y lo compras el 28:

pseudocodigo:

dia1 
28;   // Se fija el dia en el que estamos
dia2 DiasNoviembre dia1;   // Se fija el numero de dias de noviembre menos el dia en el que estamos
dia3 DiasPrueba dia2;   // El numero de dias de prueba menos los dias anteriores

Ejemplo:

dia1 
28;
dia2 30 28;
dia3 2;
El resultado es hasta el 3 de diciembre

Ten en cuenta que esto solo lo haces si el numero de dias de prueba menos el numero de dias del mes es inferior al dia de la compra.

Espero haberme explicado tal vez me lie!

Desconectado Frank005

  • PHPero Experto
  • *****
  • Mensajes: 580
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re: [Ayuda] Problemas con la funcion date()
« Respuesta #2 en: 10 de Noviembre de 2008, 17:14:39 pm »
Gracias, pero como podria armar un codigo asi? Que usaria?

Desconectado C-ChacK

  • PHPer@ Fijo
  • ***
  • Mensajes: 147
  • Karma: 3
  • --] chacKos [--
    • Ver Perfil
Re: [Ayuda] Problemas con la funcion date()
« Respuesta #3 en: 10 de Noviembre de 2008, 18:54:37 pm »
Pues utilizando la funcion date que comentaste y teniendo en un array los valores almacenados de los dias de cada mes!

Desconectado Frank005

  • PHPero Experto
  • *****
  • Mensajes: 580
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re: [Ayuda] Problemas con la funcion date()
« Respuesta #4 en: 11 de Noviembre de 2008, 01:11:36 am »
Si, pero como seria?
No he trabajado mucho con la funcion array, no quiero que me den el codigo, porque se que esta prohibido. Pero mas o menos como comenzarlo.

Desconectado C-ChacK

  • PHPer@ Fijo
  • ***
  • Mensajes: 147
  • Karma: 3
  • --] chacKos [--
    • Ver Perfil
Re: [Ayuda] Problemas con la funcion date()
« Respuesta #5 en: 11 de Noviembre de 2008, 11:39:00 am »
Mira esto es un codigo creado por MakiaResc, esta en su web, el codigo es este y trata sobre las fechas con arrays y demás:

<?php
$dias 
= array("Domingo ","Lunes ","Martes ","Miercoles ","Jueves ","Viernes ","Sábado ");
$Meses = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");

$MesActual date("m");
$AnnoActual date("Y");

$MesyAño =$Meses[$MesActual-1]." de ".$AnnoActual;

echo 
"Hoy es " .$dias[date(&#39;w&#39;)];
echo ""date("j");
echo 
" de ";
echo 
"$MesyAño";
echo 
" y son las "; echo date(&#39;h:i:s A&#39;);
?>


Espero que te sirva de ayuda!

Desconectado Blackenger

  • PHPer@ Fijo
  • ***
  • Mensajes: 114
  • Karma: 5
    • Ver Perfil
Re: [Ayuda] Problemas con la funcion date()
« Respuesta #6 en: 19 de Noviembre de 2008, 10:21:44 am »
En vez de guardar date(), te recomiendo guardar el time() y no te complicas la vida.

Ejemplo:
<?
$time 
time() + (60 60 24 5);
?>


Si te fijas solo creo una variable llamada time con la fecha actual mas 5 días en segundos. Luego para comprobar si ya pasarón los cinco días solo haces algo como esto:

<?
// Extraes el time guardado en la bd
if($bd_time time())
echo 
"Su plan se ha vencido";
 else
echo 
"Su plan esta activo";
?>


Espero te sirva.

Saludos.