AnjoEntertainment Skrevet 7. mars 2011 Del Skrevet 7. mars 2011 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
molty Skrevet 7. mars 2011 Del Skrevet 7. mars 2011 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
AnjoEntertainment Skrevet 7. mars 2011 Forfatter Del Skrevet 7. mars 2011 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
molty Skrevet 7. mars 2011 Del Skrevet 7. mars 2011 så koseligt at jeg allerede bor i bergen da Jeg er vel mest vandt med å bruke det da (hvis time() er unix-tid, har ikke orden på slikt ^^). For da kan jeg få det ut i hvilket som helst format jeg vil fra date manualen Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå