Ik moet een aantal dingen met tijd kunnen regelen.
Heb al door dat ik strtotime zal nodig hebben. Maar toch lukt het me niet.

Het eerste wat ik moet doen, is de tijd die we nu hebben + eental minuten. (of dagen, of uren) erbij tellen. En dan in een tabel steken.

Het tweede script is met een if else constructie. De if checkt of de tijd nu later is dan de tijd die in de database zit. Indien hij niet later is, moet hij een tekstje geven die na de if(*******) {you are banned} else { ok }.
Laat het rekenen met tijden over aan de database! Je hebt dan veel meer functies dan dat je het in PHP zou doen...

Zie ook hoofdstuk 12.5 van de mysql handleiding.

In de database zet je gewoon het tijdstip wanneer de ban afloopt en je hoeft alleen maar de controleren of dat tijdstip al in het verleden ligt.
1) Simpele selectbox:


<select name="duur">
<option value="5 MINUTE">5 minuten</option>
<option value="15 MINUTE">15 minuten</option>
<option value="30 MINUTE">30 minuten</option>
<option value="1 HOUR">1 uur</option>
<option value="6 HOUR">6 uur</option>
<option value="12 HOUR">12 uur</option>
<option value="1 DAY">1 dag</option>
<option value="1 WEEK">1 week</option>
<option value="1 MONTH">1 maand</option>
<option value="1 YEAR">1 jaar</option>
</select>


en een stukje sql

"INSERT INTO blokkeren (blokkerenIP, blokkerenTot, blokkerenReden) VALUES('".$ipadres."',DATE_ADD(NOW(),INTERVAL ".$duur."),'".$reden."')";


En controleren kan dan dmv

"SELECT DATE_FORMAT(blokkerenTot,'%e %m %Y') AS datum, DATE_FORMAT(blokkerenTot, '%H:%i') AS tijd, blokkerenReden FROM blokkeren WHERE blokkerenIP = '".$ipadres."' AND NOW() < blokkerenTot";


Of iets in die trant. Zo heb ik het ook gedaan in mijn nieuwssysteem, voorbeeld1 en voorbeeld2.


Reageren