Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Zeitabhängige Aktualisierung mit PHP » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 6 Beiträge
Matze84

Ok dann erstmal vielen dank.
Airblader

Prinzipiell geht das, ja. Persönlich würde ich es anders aufbauen, denn wenn du ein Event mehrfach laufen lassen möchtest, dann ist es eigentlich falsch als "Eventdauer" 2h anzugeben und es dann zu unterteilen. Es ist ja nicht ein Event mit zwei Phasen, sondern ein Event das zweimal läuft. Das ist alelrdings "nur" ein Designunterschied.

Die drei Größen, mit denen ich hantieren würde, wären
  • Start des (ersten) Events für diesen User (Datenbank)
  • Länge eines Events (Datenbank oder Konstante)
  • Momentaner Zeitstempel (Laufzeitgröße)


Alles andere lässt sich hieraus berechnen (siehe oben).
Matze84

Zitat:
Original von Airblader
Ich sehe keinen wirklichen Grund, hier aktiv irgendetwas ein zweites Mal zu starten. Wenn du den Startzeitstempel und die Event-Dauer hast, dann kannst du problemlos errechnen, ob du im ersten oder zweiten Durchgang bist und wieviel Zeit über ist.


Du meinst das ich quasi als Eventdauer 2h angebe und das dann Zeittechnisch in 2 Events unterteile?
Also wenn 1h des Events abgelaufen ist, dass dann quasi der erste Teil beendet ist...

sprich wenn Zeit > (Eventdauer / 2) dann bin ich in der 2ten Hälfte und in der jeweiligen Hälfte muss ich dann ja nur noch die restzeitbestimmen.
Also für erste Hälfte: Eventdauer/2 - $currentTimeStamp
für zweite Hälfte: EventDauer - $currentTimeStamp....

bzw so ähnlich!?
Airblader

Ich sehe keinen wirklichen Grund, hier aktiv irgendetwas ein zweites Mal zu starten. Wenn du den Startzeitstempel und die Event-Dauer hast, dann kannst du problemlos errechnen, ob du im ersten oder zweiten Durchgang bist und wieviel Zeit über ist.

code:
1:
2:
$isFirstEvent = ($current - $start) <= $eventLength;
$remaining = $current - $start - $eventLength * ($isFirstEvent ? 0 : 1)


(wobei ich persönlich letzteres niemals so im Code schreiben würde, aber zumindest funktioniert es solange alles innerhalb der Grenzen ist).

Das lässt sich auch problemlos für eine beliebige Anzahl von Durchläufen machen.
eulerscheZahl

Ich kenne mich mit PHP leider nicht aus und weiß nicht, in wie weit das realisierbar ist.
Meine Ideen:
1. rufe die Funktion einfach zweifach auf: (ist kein PHP-Code)
code:
1:
2:
3:
4:
onButtonClickByUser()
{
    doFunction(); doFunction();
}


2. gib der Funktion, die du ausführen willst, einen Zähler mit, wie oft du sie schon hast laufen lassen:
code:
1:
2:
3:
4:
5:
6:
doFunction(int done)
{
    if(done >= 1) break;
    //...
    doFunction(done + 1);
}
Matze84 Zeitabhängige Aktualisierung mit PHP

Also meine Frage ist folgende:

Ich möchte das bei Klick auf einen Button ein Ereignis/Event gestartet wird.
Dieses läuft dann sagen wir 1h. Immer wenn die Person die Seite aktualisiert, wird die Restzeit angezeigt, bis das Ereignis beendet ist.

Wenn die Zeit abgelaufen ist, soll aber automatisch das gleiche Event noch ein 2tes (und letztes mal) ausgeführt werden. (mit der gleichen Zeit)

Beispiel:
Klick auf Button--> 1h -->nach 55Minuten aktualisieren -->Restzeit 5min --> nach weiteren !!!10!!!Minuten erneut aktualisieren --> Restzeit vom 2ten automatisch gestarteten Event 55Minuten --> nach weiteren 55Minuten --> Restzeit 0 somit beendet.

Ich habe mir prinzipiell folgendes dazu überlegt.
Ich nutze eine Datenbank und schreibe dort das Event rein mit (mind.) der Endzeit (wann das Event beendet ist) und dann kann ich ja die Differenz zwischen Endzeit und aktueller Zeit bilden.
Dann habe ich ja die Restzeit.
Aber wie starte ich !!!OHNE!!! Benutzerinteraktion das Event das 2te mal?

Habt ihr eine Idee?