login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Check (half)uur

Offline lasdesigner - 30/01/2007 15:52
Avatar van lasdesignerPHP beginner Hallo,

Ik wil wat maken dat alleen maar per half uur kan. Maar hoe check ik of het een half uur is? Je heoft niet te kijken naar de laatst 'gedane' maar naar de tijd dus:

12.00 -> 12.30
12.30 -> 13.00
13.00 -> 13.30

Hoe kan ik dit checken?

16 antwoorden

Gesponsorde links
Offline Ultimatum - 30/01/2007 15:57
Avatar van Ultimatum PHP expert Zet alle mogelijken tijden die jij wilt in een array en controleer of die overeenkomt met de huidige tijd. De huidige tijd kijk je met date("H:i");
Offline finduilas - 30/01/2007 15:58
Avatar van finduilas PHP gevorderde moet het bij elk half uur zijn:
dus echt 12:00;12:30
of moet het om het half uur.

Indien het eerste: best cronjobs.
Indien het 2de:
time in de DB zetten plus 1800.
Offline lasdesigner - 30/01/2007 15:58 (laatste wijziging 30/01/2007 15:59)
Avatar van lasdesigner PHP beginner kan ik niet gewoon doen:
if((date("i") > 0)|| (date("i") > 30)) {

@finduilas,

Het is dus juist níet half uur ná laatste keer gedaan. Maar elk half uur op de 'klok'.
Offline finduilas - 30/01/2007 16:00 (laatste wijziging 30/01/2007 16:00)
Avatar van finduilas PHP gevorderde Kun je proberen.

EDIT: En moet je het dan kunnen voor langer dan die 1ne minuut?
Offline Ultimatum - 30/01/2007 16:00
Avatar van Ultimatum PHP expert En mijn oplossing, heb je daar wat an?
Offline lasdesigner - 30/01/2007 16:04
Avatar van lasdesigner PHP beginner Nee, want het moet tussen 2 tijden zijn, tussen
0 minuten en 30 minuten, en tussen 30 minuten en 59 minuten.
Offline Gerard - 30/01/2007 16:06
Avatar van Gerard Ouwe rakker Oké, dus om het even samen te vatten.

De gebruiker krijgt de mogelijkheid om 1 keer per half uur een actie te doen. Die mogelijkheid wordt dus geboden éénmaal tussen 0-30 en éénmaal tussen 30-60.

Wanneer een gebruiker bijvoorbeeld in minuut 29 die actie uitvoert dan kan hij het nogmaals doen in minuut 31. Het gaat er dus puur omdat het maar 1 keer per half uur kan en dan hoeft er niet persé een half uur tussen te zitten.
Offline finduilas - 30/01/2007 16:06 (laatste wijziging 30/01/2007 16:11)
Avatar van finduilas PHP gevorderde Volgens mij is dit gwn dan van 0 tot 59 

Je bedoelt volgens mij dus je kan 1x da script uitvoeren tussen 0-30
daarna 1x tussen 30-59. Als je het uitvoert op 38 moet je wachten tot 0 voor je het opnieuw kan doen.Of heb ik het verkeerd?

EDIT: Je gaat dus iets moeten maken waarbij de tijd wanneer het uitgevoerd is opgeslagen wordt.Je gaat volgens mij wel moeten controleren op het uur ook.Niet enkel minuten.

vb:
Als je het uitgevoerd hebt om 57.Dan kun je het tussen 0-30 terug.Doe je het niet kun je volgens jou "script" het niet uitvoeren.

Zoals ik al zei doe je het best met cronjobs.Zet in db het ip/username van de gebruiker.Wanneer het script wordt uitgevoerd zet je vb uitgevoerd op 1.Met een cronjob ga je dan de 30 & 59 minuut een script uitvoeren die uitgevoerd terug op 0 zet. Eenvoudigste oplossing volgens mij.
Offline Ultimatum - 30/01/2007 16:06
Avatar van Ultimatum PHP expert Zo had je het niet uitgelgd...
Maar hoe check ik of het een half uur is? . Daar lees ik het heel anders namelijk..

Maarja, vergeet mijn reacties maar
Offline lasdesigner - 30/01/2007 16:07
Avatar van lasdesigner PHP beginner Precies proximus! Dat systeem wil ik maken 
Offline finduilas - 30/01/2007 16:13 (laatste wijziging 30/01/2007 16:14)
Avatar van finduilas PHP gevorderde Ik zou het niet echt in een systeem doen.Waarom moeilijk maken als het makkelijk kan.

  1. if($uitgevoerd = 0)
  2. {
  3. // script
  4. }
  5. else
  6. {
  7. // wachten
  8. }}

cronjob:
  1. mysql_query("UPDATE leden SET uitgevoerd=0");
Offline lasdesigner - 30/01/2007 16:15
Avatar van lasdesigner PHP beginner Ja ik denk dat ik at doe 

En dan gewoon die cronjob laten gaan om
Minuten 00 en minuten 30?
Offline Cozze - 30/01/2007 16:22 (laatste wijziging 30/01/2007 16:23)
Avatar van Cozze HTML interesse Je kan misschien als een gebruiker de actie uitvoerd in de database bijvoegen in het hoeveelste halfuur de actie plaatsvond. (vb 0.00-0 30 = 1, 0.30-1 = 2 enz)

Als hij opnieuw die actie doet kijk je of het dan ook het xte halfuur is, zoja kan het niet uitgevoerd worden, zonee overschrijft hij de waarde en voert hij de actie uit.

Als je wil toevoegen hoelaat de actie plaatsgevonden heeft sla je wat meer op (timestamp?).

/edit: ik denk dat dit minder belastend is voor de server dan om het halfuur een cronjob uit te voeren
Offline Rik - 30/01/2007 16:30
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Hier kan je toch je kliklimiet script voor gebruiken?  

Alleen moet je dan een dingetje aanpassen:
In jouw script begint hij opnieuw met tellen en zet dan de time() als timestamp neer. Dat moet je iets precier maken door ipv
  1. $_SESSION['clicks']['tijd'] = time();
dit te gebruiken
  1. $_SESSION['clicks']['tijd'] += $tijd;
. En verder zet je $paginas op 1 en $tijd op 3600. Dat zou moeten werken! 
Offline finduilas - 30/01/2007 16:53
Avatar van finduilas PHP gevorderde Boukefalos: Jou manier is niet wat hij wilt. Als je dat uitvoert op 29 moet je dat opnieuw kunnen doen op 31.Met jou script moet je wachten tot 59
Offline Rik - 30/01/2007 16:57
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Volgens mij wel hoor...  

Het idee van een kliklimiet is toch juist dat je elke x seconden zoveel keer de pagina mag laden? Hij blokkeert dan alleen als je in dit geval in dat ene uur al een keer de pagina hebt geladen. Dan werkt het toch?  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.22s