• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Automatische Intervallberechnung und Zeiterkennung

Konda

Neues Mitglied
Hallo liebe Community,

ich möchte folgendes tun:
Ich habe einen Zeitintervall von sagen wir 25 Stunden. Der Zeitpunkt des Ende des Intervall soll immer automatisch berechnet werden.
Also sagen wir, wir gehen jetzt von dem 30.04.13 - 15 Uhr aus, dann wäre der Intervall am 01.05.13 - 16 Uhr abgelaufen.
Nun sagen wir ich erstell eine Liste mit 4 Intervallen und packe sie in eine Datenbank, Beispiel:
- 30.04.13 - 15 Uhr
- 01.05.13 - 16 Uhr
- 02.05.13 - 17 Uhr
- 03.05.13 - 18 Uhr
- 04.05.13 - 19 Uhr

Und jetzt will ich, dass wenn Beispielsweise der 2. Zeitpunkt (01.05.13 - 16 Uhr) erreicht ist, dass dann der erste Zeitpunkt (30.04.13 - 15 Uhr) gelöscht wird, alle weiteren Zeitpunkte dann nachrücken und an der letzten Stelle der neue Zeitpunkt 05.05.13 - 20 Uhr erscheint

Meine Fragen:
Ist dies alles mit PHP und SQL realisierbar?
Bzw. mein größtes Problem ist, wie sage ich ihm, dass er automatisch erkennen soll "Wir haben jetzt Uhrzeit xy", es ist Zeit weiterzurücken?

Grüße
Konda
 
Dein letzter Satz ist aus meiner Sicht das was Du eigentlich erreichen willst. Alles was Du davor schreibst sind deine Gedanken zur Realisierung dazu - stimmts? Die Frage wäre an welcher Stelle denn "Wir haben jetzt Uhrzeit xy, es ist Zeit weiterzurücken" erscheint. Beim Laden der Seite? Oder wenn man sich weiterhin auf der Seite befindet ohne sie neuzuladen? Also: was ist das ausschlaggebende Event?
 
Dein letzter Satz ist aus meiner Sicht das was Du eigentlich erreichen willst. Alles was Du davor schreibst sind deine Gedanken zur Realisierung dazu - stimmts?
Ganz genau^^


Die Frage wäre an welcher Stelle denn "Wir haben jetzt Uhrzeit xy, es ist Zeit weiterzurücken" erscheint. Beim Laden der Seite?
Naja, das würde aber voraussetzen, dass dann auch zu dem Zeitpunkt xy die Seite tatsächlich geladen wird, oder?


Oder wenn man sich weiterhin auf der Seite befindet ohne sie neuzuladen? Also: was ist das ausschlaggebende Event?
Ich weiß nicht ob das so realisierbar ist, aber ich habe mir das jetzt so gedacht, dass ein automatisches Script im Hintergrund läuft, welches feststellt "Aha, wir haben jetzt 0:10, wir müssen die Reihe in der Datenbank verschieben". Und das ohne dass die Seite aufgerufen wird. Das müsste dann Serverbasiert laufen... Oder schieße ich da gerade komplett ins Blaue? :D

Und meine Schlussendliche Frage:
Welcher Voraussetzungen gibt es da, damit das ganze funktioniert?
Bzw. reicht da PHP und SQL überhaupt aus?
 
Naja, das würde aber voraussetzen, dass dann auch zu dem Zeitpunkt xy die Seite tatsächlich geladen wird, oder?

Nein. Wenn Du diese Ausgabe nur für die Anzeige in der Webseite brauchst, dann reicht es wenn Du diese Angabe auch nur beim Laden der Seite erzeugst. Alles andere macht da imho wenig Sinn.

Dein Gedanke mit einem automatisch (oder regelmäßig) laufenden Script ließe sich per cronjob realisieren. Schau dich einfach mal danach um. Allerdings wäre das wie gesagt aus meiner Sicht nicht zwingend notwendig, wenn es nur um die Ausgabe beim Laden der Seite geht.
 
Naja, das würde aber voraussetzen, dass dann auch zu dem Zeitpunkt xy die Seite tatsächlich geladen wird, oder?
Eigentlich nicht. Der Datenbank isses ja eigentlich egal, ob sie nicht aktuell ist, solange kein User auf die Seite zugreift. Beim Laden der Seite könnte man dann als erstes prüfen, ob das 1. Datum in der Vergangenheit liegt, wenn ja wird das 1. Datum gelöscht, das letzte Datum hinzugefügt. Und das wiederholt man so lange, bis das erste Datum in der Zukunft liegt. Bis hierhin reicht PHP in Verbindung mit ner Datenbank vollkommen aus.

Interessanter ist die Frage, was passieren soll, wenn der User heute, also am 2.5. um 16:59 Uhr die Seite aufruft und bis nach 17 Uhr auf der Seite bleibt. Soll dann während des Zugriffes, eben um 17 Uhr die Information gewechselt werden? Wenn ja, dann benötigst Du noch JavaScript um im Browser immer die aktuelle Uhrzeit zu ermitteln. Wenn es dann 17 Uhr ist, muss ein AJAX-Request, so sagt man glaub ich, ausgelöst werden, der dann auf dem Webserver die Datenbank updatet und Dir im Anschluss neue Informationen anzeigt. Dabei sind natürlich die unterschiedlichen Zeitzonen zu berücksichten. Bei dem Projekt das ich zur Zeit betreue hieße das, Webserver ist in UTC, Standortzeit ist MESZ und zusätzlich käme dann noch die Zeit des Clients dazu.

Menno, hab ich lang gebraucht um das Post zu schreiben :grin:
 
Zuletzt bearbeitet:
Eigentlich nicht. Der Datenbank isses ja eigentlich egal, ob sie nicht aktuell ist, solange kein User auf die Seite zugreift. Beim Laden der Seite könnte man dann als erstes prüfen, ob das 1. Datum in der Vergangenheit liegt, wenn ja wird das 1. Datum gelöscht, das letzte Datum hinzugefügt. Und das wiederholt man so lange, bis das erste Datum in der Zukunft liegt. Bis hierhin reicht PHP in Verbindung mit ner Datenbank vollkommen aus.
Daran hätte ich auch denken können :D Mir hat anscheinend nur der richtige Denkanstoß gefehlt, vielen Dank!!!

Eine letzte Frage:
Wie vergleiche ich denn zwei Daten/Uhrzeiten? Google möchte es mir nicht verraten, bzw. anscheinend suche ich mit den falschen Begriffen :D
 
Es kommt drauf an was Du vergleichen willst. Ob Datum1 vor Datum2 liegt? In MySQL reicht ein simpler Vergleich dazu:

Code:
... WHERE datum1 < datum2

vorausgesetzt beide Felder sind vom Datentyp DATETIME.

Um es auch logisch zu durchdenken könntest Du dir der Einfachheit halber die Datums-/Zeitangaben auch in Timestamps umwandeln lassen und diese direkt vergleichen. Dadurch hast Du 2 Zahlen die Du auch mit bloßem Auge vergleichen kannst:


Das geht in MySQL mittels UNIX_TIMESTAMP, siehe Manual:
https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp
(dort findest Du auch viele Möglichkeiten von Datums-/Zeitvergleichen)
 
Zurück
Oben