Webseite bei Uhrzeit (x) und Wochentag (a, b, c, d, e) neuladen.

Ang Ars Novum

Grünschnabel
Hi!

Ich habe eine Webseite die zweimal am Tag (Mo - Fr) neugeladen werden soll. Die Uhrzeiten sind Variablen und sollen aus einer XML-Datei kommen. Ich gebe diese jetzt formhalber mit 8:00 und 19:00 an.

Am Samstag (Wochentag 7) andere Uhrzeiten, z. B. 8:00 und 16:00.

Erster reload = x (bsp. 8:00)
Zweiter reload = y (bsp. 19:00)

dazu kommt noch die Abfrage des Wochentages (0 = Sonntag…)

Generell geht das wohl mit PHP:
Code:
<?php
$heute = date("d.m.y"); // 03.10.11
$hour = date("H"); // aktuelle Std
$min = date("i"); // aktuelle Min
$datum=strtotime($day); // Welcher Tag
$cdate = date("w",$datum);  // Welcher Wochentag als Nr
…

und

Code:
…
if (($hour == "8") & ($min == "00")
…

und

…
if (($cdate == 6) && ($sl == "1"))  { 
…

Problem… die Zeit ist ja nur beim Laden der Seite "aktuell".

Um 8:00h soll eine Seite "A.php" geladen werden, um 19:00h soll eine Seite "B.php" geladen werden. "A.php" und "B.php" müßten die gleiche Zeitabfrage dann ebenfalls durchführen.

Hat hierzu jemand eine Idee?

Ich habe mit JS einen Countdowntimer verwendet… aber dann stimmen die Zeiten ja auch nicht überein… und in JS bin ich … nicht so firm… :rolleyes:
 
Soll jetzt a) eine Seite während sie angezeigt wird automatisch neu geladen werden oder sollen b) zu bestimmten Zeiten unterschiedliche Seiten angezeigt werden?

"A" müsstest du wohl mit JAvaScript lösen und für "B" wäre dann aber PHP das richtige.
 
Ich dachte daran, dass ich zuerst eine Seite A aufrufe… diese Seite fragt die Zeit ab. Wenn $Zeit == var1 (z. B. 8:00) und $Wochentag == 2,3,4,5,6 (also Mo - Fr) dann auf Seite A bleiben. Die Uhr muss natürlich weiterlaufen… denn wenn dann $Zeit == var2 (19:00) wird… soll auf Seite B gewechselt werden.

Alternativ könnte auch zu den jeweiligen Uhrzeiten nur ein Reload der Page erfolgen, so dass ich dann die Inhalte ggf. über die Sichtbarkeit der Layer regele.
 
Ich würde es generell mit PHP lösen:

PHP:
<?php

$zeit_zone = array(8, 9, 10, 11);
$tag_zone = array(1, 2, 3);

$zeit_akt = date("G", time());  // die aktuelle Uhrzeit (Stunden) als Zahl
$tag_akt =  date("N", time());  // 1 = Montag ... 7 = Sonntag

if (in_array($zeit_akt, $zeit_zone) and in_array($tag_akt, $tag_zone)) {
	echo "Es ist zwischen 8 und 12 und es ist Montag, Dienstag oder Mittwoch";
} else {
	echo "Es ist entweder zwischen 12 und 8 oder es ist Donnerstag, Freitag, Samstag oder Sonntag";
}

?>

Denn IF-Block entsprechend anpassen und das dann auf beiden Seiten mit der gewünschten Umleitung eintragen.
 
Interessant, Danke!

…aber die Uhr läuft ja nicht mit, oder? Das Problem ist, Seite A wird 1x geladen von Hand und soll danach automatisch die reloads anhand der Uhrzeit machen…

Ich hab grad in dem Zusammenhang was interessantes gefunden, muss nur noch die Wochentage mit IF Wochentag dazuschreiben…

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<?php
$Javascriptzeit = date("Y, n, j, G, i, s");
?>
<script language="JavaScript">
<!--
var Serverzeit = new Date(<?php echo$Javascriptzeit; ?>);

function UhrzeitAnzeigen()
{
    if(!document.all && !document.getElementById)
    {
        return;
    }

    var Stunden = Serverzeit.getHours();
    var Minuten = Serverzeit.getMinutes();
    var Sekunden = Serverzeit.getSeconds();
    Serverzeit.setSeconds(Sekunden+1);

    if(Stunden <= 9)
    {
        Stunden = "0" + Stunden;
    }

    if(Minuten <= 9)
    {
        Minuten = "0" + Minuten;
    }

    if(Sekunden <= 9)
    {
        Sekunden = "0" + Sekunden;
    }

    Uhrzeitanzeige = Stunden + ":" + Minuten + ":" + Sekunden;

    if(document.getElementById)
    {
        document.getElementById("Uhrzeit").innerHTML = Uhrzeitanzeige
    }
    else if(document.all)
    {
        Uhrzeit.innerHTML = Uhrzeitanzeige;
    }

	if ((Stunden == 8) & (Minuten == 00) & (Sekunden == 00)) // Um 8:00:00 wird die Seite neu geladen
	{
	        location.reload();
	}

	if ((Stunden == 16) & (Minuten == 00) & (Sekunden == 00)) // Um 16:00:00 wird die Seite neu geladen
	{
	        location.reload();
	}
	
    setTimeout("UhrzeitAnzeigen()", 1000);
}
//-->
</script>
<title>Uhrzeit des Webservers mit Javascript und PHP dynamisch anzeigen</title>
</head>
<body onLoad="UhrzeitAnzeigen();">
Uhrzeit: <span id="Uhrzeit"></span>
</body>
</html>

Jetzt noch die Wochentage als IF … & () reinwursteln… ufz… der Reload um "Zeit A" und "Zeit B" geht schonmal…
 
Ich würd die Auswahl, welche Seite geladen werden soll, auch lediglich über php realisieren. Möchtest Du wirklich, dass um 8:00 und 19:00 automatisch ein Reload per JS geschehen soll, auch wenn der Besucher grad um 18:59:50 raufgekommen ist und grad nen Text liest? Spätestens, wenn der Besucher selbst einen Reload anstößt, landet er - wegen php - in der B-Seite..

Zudem
Code:
 var now = new Date();
Date() leer liefert genauso das aktuelle Datum, Du brauchst diese php/JS-Wurst gar nicht.. Tatsächlich ist Dein gefundener JS-Code absolut überfrachtet. Diese If-Abfragen für die vorangestellten Nullen sind unnötig für Deine Aufgabenstellung, sie werden hier nur umgesetzt, um eine schönere Ausgabe im Beispielcode herbeizuführen.

mfg chmee
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück