Gå til innhold

[Løst] Trekke ifra dager...


Anbefalte innlegg

Jeg har laget et PHP-Script hvor brukere kan kjøpe et såkalt 'VIP-Medlemskap', men vet ikke helt hvordan jeg skal få til å trekke fra dagene uten hjelpen av cronjobs. Den største feilen ligger nok i at jeg suger i matte, spesielt PHP-Matematikk.

 

Slik fungerer mitt script:

 

- Når bruker kjøper VIP, lagrer jeg datoen de kjøpte VIP-Medlemskapet i databasen - med klokkeslett. Altså slik:

 

TABELL: dato_kjopt

TEKST: 07.03.11 12:25

 

Så, når det har gått, la oss si tretti dager fra denne datoen - klokkeslettet inkludert, så kjøres det en MySQL DELETE kommando for å slette medlemskapet til denne brukeren.

 

Så... hvordan blir regnestykket? :|

Lenke til kommentar
Videoannonse
Annonse

Istedenfor å legge inn dato som tekst, legg inn time verdien.

Da kan du hente ut tallet i hvilken som helst format ved å bruke date("d", time()) f.eks. Da får man ut datoen i dag.

 

Du kan og legge inn et felt som sier når den stopper. altså (86400*30)+time(), hvor 86400 = 1 dag.

 

For å finne ut hvor mange dager det er igjen kan du ta stoppdato (1245462364 f.eks) minus tiden akkurat nå. altså time().

Deretter kan du ta svaret du får der delt på 86400.

Bruk så ceil funksjonen til å runde ned til helt tall slik du får ut hvor mange dager du har igjen.

 

Dette er hvertfall min måte å gjøre det på.

<?php
$vipMembership = time()+(86400*30); // Gir deg tiden i dag + 30 dager

// nødvendig mysql spørring for å legge inn i databasen
?>

For å hente dager igjen:

<?php
// mysql spørring for å hente tallet
$medlemTil = $result['tid'];
$dagerIgjen = $medlemTil-time();
$dagerIgjen = $dagerIgjen/86400;
$dagerIgjen = ceil($dagerIgjen);

echo('Du er VIP i ' . $dagerIgjen . ' dager til');

 

Til andre erfarne i forumet, har dere noen innvendinger i det jeg har skrevet? Noe jeg bør endre på?

 

- Molty

Lenke til kommentar
  molty skrev (På 7.3.2011 den 11.57):

Istedenfor å legge inn dato som tekst, legg inn time verdien.

Da kan du hente ut tallet i hvilken som helst format ved å bruke date("d", time()) f.eks. Da får man ut datoen i dag.

 

Du kan og legge inn et felt som sier når den stopper. altså (86400*30)+time(), hvor 86400 = 1 dag.

 

For å finne ut hvor mange dager det er igjen kan du ta stoppdato (1245462364 f.eks) minus tiden akkurat nå. altså time().

Deretter kan du ta svaret du får der delt på 86400.

Bruk så ceil funksjonen til å runde ned til helt tall slik du får ut hvor mange dager du har igjen.

 

Dette er hvertfall min måte å gjøre det på.

<?php
$vipMembership = time()+(86400*30); // Gir deg tiden i dag + 30 dager

// nødvendig mysql spørring for å legge inn i databasen
?>

For å hente dager igjen:

<?php
// mysql spørring for å hente tallet
$medlemTil = $result['tid'];
$dagerIgjen = $medlemTil-time();
$dagerIgjen = $dagerIgjen/86400;
$dagerIgjen = ceil($dagerIgjen);

echo('Du er VIP i ' . $dagerIgjen . ' dager til');

 

Til andre erfarne i forumet, har dere noen innvendinger i det jeg har skrevet? Noe jeg bør endre på?

 

- Molty

Kom til Bergen så kan vi gifte oss og få barn!

 

Eneste er at jeg hater UNIX-Tid, men det er vel det greieste å bruke... eller?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...