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

Informatiker Board » Themengebiete » Praktische Informatik » Zeitabhängige Aktualisierung mit PHP » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Zeitabhängige Aktualisierung mit PHP
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Matze84
Eroberer


Dabei seit: 14.10.2012
Beiträge: 73

Zeitabhängige Aktualisierung mit PHP Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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?
23.01.2014 21:34 Matze84 ist offline Beiträge von Matze84 suchen Nehmen Sie Matze84 in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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);
}


__________________
Syntax Highlighting fürs Board (Link)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von eulerscheZahl: 24.01.2014 06:04.

24.01.2014 06:03 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Airblader Airblader ist männlich
Doppel-As


Dabei seit: 03.03.2013
Beiträge: 138
Herkunft: München

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.

__________________
The best thing about a boolean is that even if you're wrong, you're only off by a bit.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Airblader: 25.01.2014 01:42.

25.01.2014 01:35 Airblader ist offline Beiträge von Airblader suchen Nehmen Sie Airblader in Ihre Freundesliste auf
Matze84
Eroberer


Dabei seit: 14.10.2012
Beiträge: 73

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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!?
25.01.2014 15:40 Matze84 ist offline Beiträge von Matze84 suchen Nehmen Sie Matze84 in Ihre Freundesliste auf
Airblader Airblader ist männlich
Doppel-As


Dabei seit: 03.03.2013
Beiträge: 138
Herkunft: München

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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).

__________________
The best thing about a boolean is that even if you're wrong, you're only off by a bit.
25.01.2014 17:01 Airblader ist offline Beiträge von Airblader suchen Nehmen Sie Airblader in Ihre Freundesliste auf
Matze84
Eroberer


Dabei seit: 14.10.2012
Beiträge: 73

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ok dann erstmal vielen dank.
28.01.2014 16:20 Matze84 ist offline Beiträge von Matze84 suchen Nehmen Sie Matze84 in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Zeitabhängige Aktualisierung mit PHP