Website nach Uhrzeit ändern

Hi,

ich möchte als besonderes “Schmunkerl” meine Website mit etwas optischem aufpäppen. Ein paar Bilder sollen sich dann je nach Uhrzeit (nicht Datum) ändern. Wie ist das zu realisieren?

cronjob würd ich glatt mal sagen

cronjob.de hat damit doch nichts zu tun (meine ich).

Ich will z.B. dass ein Bild im Header mittags eine Sonne und nachts ein Mond ist. Das nur als Beispiel.

PHP…

dafür brauchst du nur 12 Bilder (image_1 bis image_12) im Ordner images/change

Hoffe das hilft :wink:

Das ist schon besser.

Jetzt hab ich aber mit PHP gar keine Erfahrung und möchte zwischen 5 Zeiten unterscheiden (0-6; 7-11; 12-18; 19-21; 21-0)

Wie mache ich das denn jetzt mit if?

<?php

$base="G";  //siehe http://de.php.net/date

$images=array(
  "/images/change/img1.jpg",
  "/images/change/img2.jpg",
  "/images/change/img3.jpg",
  "/images/change/img4.jpg",
  "/images/change/img5.jpg"
  );

$id=floor(date($base)/count($images));
$image=$images[$id];
?>

<html>
...
...
<img src="<?php echo $image; ?>" alt="wechselndes Bild" />
...

Soweit so gut.

Wäre dir jetzt noch dankbar, wenn du mir diese Zeile erklären könntest.

da hab ich iwie mist gebaut… :ps: (soll auch vorkommen)

iwie schaff ich es nicht, einen algo zusammenzudenken, der einen bereich von 0-24 auf 0-4 aufteilt…

Du schaffst das schon. Lass dir ruhig Zeit. Hauptsache es funktioniert.

Ich bin jedenfalls für heute weg. :wink2:

Da du 0-6; 7-11; 12-18; 19-21; 21-0 geschrieben hast nehme ich aus einfachheitsgründen folgende aufteilung:

0     6     12    18  21  0
|-----|-----|-----|---|---|
   0     1     2    3   4

Der Code für die Bildnummer sollte dann so aussehen

$picture = date('g') < 18 ? floor(date('g') / 6) : floor((date('g') - 18) / 3 + 3);

mfg

so kann das jeder… :p es soll dynamisch auf alle Zeiten sein…
naja, so gehts auch:

<?php

$time=date("g");  //siehe http://de.php.net/date

$times=array(0,6,12,18,21);

$images=array(
  "/images/change/img1.jpg",
  "/images/change/img2.jpg",
  "/images/change/img3.jpg",
  "/images/change/img4.jpg",
  "/images/change/img5.jpg"
  );

for($i=0; $i<count($times)+1; $i++)
   if($times[$i] > $time)
      break;
$image=$images[$i-1];
?>

<html>
...
...
<img src="<?php echo $image; ?>" alt="wechselndes Bild" />
...

sollte Funktionieren :wink:

Werde ich mal im Verlauf des Tages ausprobieren. Danke soweit.

Hi,
da wir hier in
HTML, XML, CSS und Javascript sind,
eine Lösung mit javascript, für die ich zum Verständnis ein paar Zeilen mehr
spendiert habe:
im head:

[code] [/code]

Die function wird mit onLoad aufgerufen, nachdem das Bildobjekt zur Verfügung
steht:

[code]
:
Bild

[/code]
Die Zeiten können bequem abgewandelt werden, ohne sich Gedanken über eine
Formel machen zu müssen. Bedingung : steigende Zeiten.
Das ganze lässt sich natürlich so auch mit php realisieren.

Pit

Hi JB,

ich habe es in meiner Sig mit diesem Code realisiert:

// Abfrage der momentanen Stunde (G -> 0-23)
$std = date("G");
// Vergleichsoperatoren
if     ($std >= 5 && $std < 9){          // von 5.oo Uhr bis 8.59 Uhr
        $begruessung = "Guten Morgen!";}
elseif ($std >= 9 && $std <= 18) {       // von 9.oo Uhr bis 18.59 Uhr
        $begruessung = "Guten Tag! ";}
elseif ($std >= 19 && $std <= 23) {       // von 19.oo Uhr bis 23.59 Uhr
        $begruessung = "Guten Abend! ";}
else   {$begruessung = "Du solltest schlafen gehen!";}   // von 00.00 Uhr bis 4.59 Uhr

Du müsstet es natürlich die Zeiten anpassen und eben statt Text die Bilder nehmen villeicht Hilfts ja mal wem :wink:
Gruss Six

Dieser Code zeigt Webseiten je nach Tag verschieden an.

<? $datum = getdate(); $heute = $datum[weekday]; switch ($heute) { case "Sunday": readfile ("sonntag.htm"); break; case "Monday": readfile ("montag.htm"); break; case "Tuesday": readfile ("dienstag.htm"); break; case "Wednesday": readfile ("mittwoch.htm"); break; case "Thursday": readfile ("donnerstag.htm"); break; case "Friday": readfile ("freitag.html"); break; case "Saturday": readfile ("samstag.htm"); break; } ?>

geht es in diesen Stil auch mit Tages Zeiten in Stunden?
:slight_smile:

[code]<?
$hours = getdate();
$heute = $hours[hours];
switch ($heute) {
case “1”:
readfile (“file.html”);
break;
case “2”:
readfile (“file.html”);
break;
case “3”:
readfile (“file.html”);
break;
case “4”:
readfile (“file.html”);
break;
case “5”:
readfile (“file.html”);
break;
case “6”:
readfile (“file.html”);
break;
case “7”:
readfile (“file.html”);
break;
case “8”:
readfile (“file.html”);
break;
case “9”:
readfile (“file.html”);
break;
case “10”:
readfile (“file.html”);
break;
case “11”:
readfile (“file.html”);
break;
case “12”:
readfile (“file.html”);
break;
case “13”:
readfile (“file.html”);
break;
case “14”:
readfile (“file.html”);
break;
case “15”:
readfile (“file.html”);
break;
case “16”:
readfile (“file.html”);
break;
case “17”:
readfile (“file.html”);
break;
case “18”:
readfile (“file.html”);
break;
case “19”:
readfile (“file.html”);
break;
case “20”:
readfile (“file.html”);
break;
case “21”:
readfile (“file.html”);
break;
case “22”:
readfile (“file.html”);
break;
case “23”:
readfile (“file.html”);
break;
case “0”:
readfile (“file.html”);
break;
}
?>

[/code]