timer- funktion

kekka

Grünschnabel
Hallo,

ich benötige einen Timer, der zu einer bestimmten Zeit die Seite neu lädt.
Ich kenne JavaSript timer, aber das funktioniert nur mit einer bestimmten Anzahl an Sekunden, z.Bsp.: 30 Sekunden. Ich benötige aber etwas in der Art: neu laden um 15:00 Uhr.

Wer kann mir eine andere Möglichkeit sagen, als eine while- Schleife ständig durchlaufen zu lassen und die Zeit zu vergleichen?

Vielen Dank im Voraus
Kekka
 
Danke für Deine Antwort.

Mit cronjobs führt man doch bestimmt Skripte usw. immer wieder zum gleichen Zeitpunkt aus, also immer um 22.30h oder alle 30 Minuten.

Meine Anwendung ist aber eine Art Auktionstool, das Neuladen der Seite soll also genau dann passieren, wenn die Auktion abgeschlossen ist. Das kann ja zu jeder möglichen Zeit geschehen.

Any ideas? Evtl. JavaScript?
 
Du könntest einen Cronjob einsetzen, der alle 10 Sekunden o. ä. prüft ob die Auktion abgelaufen ist. Ansonsten fällt mir dazu nichts wirkliches ein.
Es sei denn du hast vollen Zugriff und könntest den Cronjob bei der Erstellung der Auktion selber einbauen und danach auch wieder löschen, so könntest du es vielleicht durchziehen.
 
Neben Cronjobs, welche eigentl. nicht alle 10 Sekunden aufgerufen werden sollten, kann man reinen HTML nehmen:

HTML:
<META HTTP-EQUIV="refresh" CONTENT="3; url=http://www.domain.de/datei.php">

Die 3 steht für 3 Sekunden. Wenn die Seite alls 10 MInuten refresht werden muss, dann 60 * 10 eintragen.
 
Aber vielleicht beschreibst du nochmal genau was du eigentlich vorhast, denn mit den bisherigen Infos kann man nicht soviel anfangen. Wozu die Seite neuladen, wenn der Benutzer vielleicht schon gar nicht mehr drauf ist?

Du könntest auch einfach den Zeitpunkt vom Ende der Auktion nehmen und dann die Anzahl Sekunden berechnen, die es von Jetzt bis zu diesem Ende nimmt und dies als Refresh eintragen oder dann per JS realisieren.

Aber den Sinn verstehe ich trotzdem noch nicht so ganz.
 
Zuletzt bearbeitet:
Ähnlich wie bei anderen Auktionstools (ebay...) gibt es eine Seite, die den Artikel und die verbleibende Zeit anzeigt. Ist diese Zeit "null" möchte ich die Seite neu laden, um dann mit einer if-Abfrage nicht mehr den "Bieten"-Button anzuzeigen sondern irgendeinen Text ("Auktion beendet, Ergebnis:.....).

PHP:
if (verbleibende Zeit > 0) {
include 'countdown.php';
echo "<form action=\"bieten.php\"> Bieten-Button</form>";
}
else { 
echo "auktion beendet"
}

Ich kann die "refresh"-Zeit nicht absolut eingeben, da das Tool eine Funktion hat, die die Auktion unter bestimmten Umständen automatisch verlängert.


@ saila: An "META HTTP-EQUIV="refresh" CONTENT=x" habe ich schon gedacht, aber ich dachte, es gibt vielleicht eine elegantere Lösung...?

Danke für jeden Tipp
 
Deine Lösung ist eine Verbindung von PHP und JavaScript.

Die Zeit wird beim Start des ersten Gebots in der DB per timestamp gespeichert. Bei jedem Aufruf von diesem Bereich, wird die Zeit mit der Vergleichszeit (Auslauf der Auktion) verglichen und dies an Javascript übergeben. Dieses zeigt nun wieder die ablaufende Zeit und gleichzeitig bei 0 wird der Bietbuttone versteckt.

Meinst du sowas?
 
Ja, so ungefähr.

Ich habe einen JavaScript countdown, der "live" auf der Seite - also Sekunde für Sekunde- mitläuft. Den könnte ich doch dafür benutzen und bei "00:00:00" einen Seiten reload machen, oder? Wie sag ich das aber JavaScript?
 
Für was brauchst du einen Reload?

Wenn ein User bei einer Auktion mitmachen möchte sieht er ja von dem der die Auktion gestartet hat, wie lange diese noch läuft.

Wenn ein User ein Gebot abgeben möchte gibt er sein Gebot ein und sendet dieses. Danach bekommt er angezeigt, das entweder sein Gebot übernommen wurde oder das sein Gebot bereits zu tief war.

Gleichzeitig bekommt er nach dem senden seines Gebots bereits wieder die aktuellle Gebotsansicht.

Wenn du einen Timer einsetzen willst um nur das Gebot zu aktuallisieren, dann nehm für diesen Bereich iframe und lass das Gebote reloaden.

Wenn die Zeitanzeige Live sein muss, dann nimm den Timestamps von dem der die Autkion gestartet, bis wann sie läuft. Ziehe davon die Zeit in Sekunden ab, vom Start der Autkion und mach daraus date(). Diesen Wert (weis nicht ob das geht - ich meine ja) gibst du einfach einem JavaScript, das dann die verbleibende Zeit der Autkion darstellt.
 
Zurück