Mit Zeiten rechnen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aktion
beispiel
bestimmen
code
dank
erlauben
funktioniert code
idee
minute
probier
schnelle antwort
sekunde
tag
teilnehmer
verschiedenen zeiten
warten
zahl
-
Hallo,
ich tag/probier">probier seit Tagen einige Varianten und finde keine wirklich gute Lösung.
Ich möchte eine Aktion nur alle 30 Minuten erlauben.
Dann soll die aktuelle Zeit mit der Zeit verglichen oder subtrahiert werden.
Und erst wenn der Teilnehmer vor 30 Minuten oder länger teilgenommen hat, darf er noch eine Aktion ausführen.
Wir würdet ihr das machen?
Ich weiß nur nicht wie man am besten mit 2 verschiedenen Zeiten rechnet.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Nimm einfach den timestamp! Das ist die Zeit von 1970 oder so in Sekunden.
-
Hi,
ich würde das mit timestamps machen:
<?php $timestamp = time(); //Timestamp jetzt $gestern = $timestamp - 1800; //Timestamp 30 min früher ?>
Wenn du den timestamp z.B. in einer DB speicherst prüfst du das so:
if ($timestampdb =< (time() - 1800)) { //Führe Aktion aus } else { echo "Bitte warten Sie noch ".$timestampdb-time()-1800." Sekunden!"; }
MfG
Steffen -
Aso,
ich hab immer erst in die "normale" Zeit umrechnen lassen.
Aber auf die Idee mit dem Timestamp kam ich auch, nur wusste ich nicht ob es funktioniert, da es
so viele Zahlen sind und ich nicht wusste, ob das klappt.
Danke jedenfalls für deine schnelle Antwort.
-
Hallo seth93,
der Timestamp ist wie cookies schon sagte die Zeit in Sekunden seit 1.1.1970 00:00 UTC.
Und lässt sich somit wunderbar subtrahieren um Zeitdifferenzen zu bestimmen.
habe das Beispiel von fusballmanager korrigiert damit es auch funktioniert.
if ($timestampdb <= time()-1800) { //Führe Aktion aus echo "Aktion"; } else { echo "Bitte warten Sie noch ".($timestampdb-time()+1800)." Sekunden!"; }
Du speicherst einfach immer dann wenn die "Aktion" ausgeführt wird den aktuellen Timestamp in der DB (oder wo auch immer)
$timestampdb = time();
Vor der if-Bedinung liest du einfach den Wert aus der DB und machts die überprüfung. -
Ja, ich hab das schon hinbekommen, vielen Dank ^^
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage