Tageszeitmeldungen mit Text und Grafik ...

Hallo,

ich habe ein vorhandenes German-Datescript ein wenig modifiziert, um zusätzlich die Zeit auszuwerten, leider bin ich kein PHP-Experte, und so richtig scheint der Wechsel der Tagesmessages nicht hinzuhauen:
Könnte das folgend Codeallerlei mal jemand auf Richtigkeit checken ?

Also so sieht der relevante Code in der PHP-Datei aus, die ich per include einbinde und mit dem Echobefehl ausgebe:
PHP:
<?php
// Copyrighthinweise ....
// Erforderliche Variablen:
// Messagegrafiken eintragen:
$MESSAGE_URL_NACHT = "../scripts/scroll_up.gif";

$datum=time();

$wtag=date("l", $datum);
if ($wtag=="Monday") $tag="Montag";
elseif ($wtag=="Tuesday") $tag="Dienstag";
elseif ($wtag=="Wednesday") $tag="Mittwoch";
elseif ($wtag=="Thursday") $tag="Donnerstag";
elseif ($wtag=="Friday") $tag="Freitag";
elseif ($wtag=="Saturday") $tag="Samstag";
elseif ($wtag=="Sunday") $tag="Sonntag";

$month=date("F", $datum);
if ($month=="January") $monat="Januar";
elseif ($month=="February") $monat="Februar";
elseif ($month=="March") $monat="M&auml;rz";
elseif ($month=="April") $monat="April";
elseif ($month=="May") $monat="Mai";
elseif ($month=="June") $monat="Juni";
elseif ($month=="July") $monat="Juli";
elseif ($month=="August") $monat="August";
elseif ($month=="September") $monat="September";
elseif ($month=="October") $monat="Oktober";
elseif ($month=="November") $monat="November";
elseif ($month=="December") $monat="Dezember";

$zeit = date('H');
if ($zeit >= 4 and $zeit <= 11) {
   $gruss = "Guten Morgen!";
}
if ($zeit > 11 and $zeit <= 14) {
   $gruss = "Mahlzeit!";
}
if ($zeit > 14 and $zeit <= 17) {
   $gruss = "Guten Tag!";
}
if ($zeit > 17 and $zeit <= 22) {
   $gruss = "Guten Abend!";
}
else {
   $gruss = "<IMG SRC=\"$MESSAGE_URL_NACHT\">";
}

?>

Das ganze dann wie gesagt per echo im der Datei mit:
PHP:
<?php echo "".$tag." der ".date("d",$datum).". $monat ".date("Y",$datum)."";?><br>
<b><?php echo $gruss;?></b>

Ist das soweit korrekt? Vor allem der Abschnitt der Messages ....
Also ich möchte optional entweder per Grafik oder per Text die Message zur bestimmten Tageszeit ausgeben...

Gruß Ron McDDon

Zur Vollständigkeit halber hier der Include-Befehl der betreffenden Zieldatei...
PHP:
<?php include("../scripts/german_date.php");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
?>
 
Zuletzt bearbeitet:
Richtig dürfte es sein, aber:
OH GOTT ist das schlechter Stil! !
Und vor allem: Was ist das ganze überflüssige Zeug?
PHP:
$stunde = date("G");
if ($stunde >= 4 && $stunde <= 11) {
   $gruss = "Guten Morgen!";
} elseif ($stunde > 11 and $stunde <= 14) {
   $gruss = "Mahlzeit!";
} elseif ($stunde > 14 and $stunde <= 17) {
   $gruss = "Guten Tag!";
} elseif ($stunde > 17 and $stunde <= 22) {
   $gruss = "Guten Abend!";
} else {
   $gruss = "<imf src=\"../scripts/scroll_up.gif\">";
}

$ger_day = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag",
 "Freitag", "Samstag");
$ger_month = array("Januar", "Februar", "M&uuml;rz", "April", "Mai",
 "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");

echo "Es ist: ".$ger_day[date("w")]." der ".date("j").". ".$ger_month[date("n")-1];
echo "<br>",$gruss;

Sollte so auch funktionieren!
 
Zuletzt bearbeitet von einem Moderator:
Auslagern ...

Hi und danke, naja wie gesagt bin php-newbie und alles schön nach handbuch ...;-)

habe jetzt nach deiner Anleitung es so eingebaut, jedoch ausgelagert, weil ich die Angaben noch woanders anzeigen lassen möchte, und dies nicht immer in die datei selbst reinsachreiben möchte ...

hab noch ne Frage: was für einen Datumsbefehl muss ich nun angeben um die Zeit des Surfers anzusprechen und nicht die des Servers, weil sich die Tagesmessage Grafiken ja nach dem User richten sollen, also wenn es woanders Morgens um 10 ist, soll dort nicht Guten Abend stehen ...

Habe da meine eigene Systemzeit umgestellt und wollte die verschiedenen Messages ausprobieren, jedoch komt da immer die Anzeige Guten abend, wahrscheinlich weils die Serverzeit ist ...

Kann ich das ändern? auch mit Time oder gmdate hats nichts gebracht ...

Gruss
 
Zuletzt bearbeitet:
Soweit ich weiß, kannst Du die Client-Zeit nur per JavaScript herausbekommen.
PHP ist eine serverseitige Programmiersprache, die - wie der Name schon sagt - auf dem Server was produziert und dann an den Client schickt.

JS wird dagegen auf dem Client ausgeführt und kann so die aktuelle Zeit des Clients auslesen.

Ich lasse mich aber gerne eines besseren belehren! ;-)

MfG
cyber
 
Nachgebessert ...

Hallo, das mit der clientseitigen Zeitangabe würde mich schon noch interessieren ...

naja bis jetzt habe ich das so gelöst:
PHP:
// Messagegrafiken eintragen:
$MSG_IMG_FRUEH = "../scripts/frueh_msg.gif";
$MSG_IMG_MORGEN = "../scripts/morgen_msg.gif";
$MSG_IMG_MITTAG = "../scripts/mittag_msg.gif";
$MSG_IMG_TAG = "../scripts/tag_msg.gif";
$MSG_IMG_ABEND = "../scripts/abend_msg.gif";
$MSG_IMG_NACHT = "../scripts/nacht_msg.gif";

$ger_day = array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa");
$ger_month = array("Jan", "Feb", "M&auml;rz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez");

$stunde = date("G");
if ($stunde >= 23) {
//   $gruss = "Hallo Nachtschw&auml;rmer!";
   $gruss = "<img src=\"$MSG_IMG_NACHT\">";
} elseif ($stunde >= 18) {
//   $gruss = "Guten Abend!";
   $gruss = "<img src=\"$MSG_IMG_ABEND\">";
} elseif ($stunde >= 13) {
//   $gruss = "Guten Tag!";
   $gruss = "<img src=\"$MSG_IMG_TAG\">";
} elseif ($stunde >= 11) {
//   $gruss = "Mahlzeit!";
   $gruss = "<img src=\"$MSG_IMG_MITTAG\">";
} elseif ($stunde >= 7) {
//  $gruss = "Guten Morgen!";
   $gruss = "<img src=\"$MSG_IMG_MORGEN\">";
} elseif ($stunde >= 4) {
//   $gruss = "Hallo Fr&uuml;haufsteher!";
   $gruss = "<img src=\"$MSG_IMG_FRUEH\">";
} else {
//   $gruss = "Hallo Nachtschw&auml;rmer!";
   $gruss = "<img src=\"$MSG_IMG_NACHT\">";
}
Ich habe das jetzt soweit modifiziert, dass man zwischen Grafik- und Textausgabe wählen kann :-)
Dem Ganzen möchte ich nun noch die Krone ;-) aufsetzen, indem ich das nun auch mit den Datumsangaben machen möchte, also die Tage 00-31 sowie die Wochentage und Monate wahlweise als Grafik oder Text ausgeben. Hat da einer schon ne fertige Lösung? kann ich in die Arrays auch den img-tag einbinden?

Gruß Ron
 
Zurück