Parse Error Datumsfunktion
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aktuellen zeitpunkt
april
array
beginn
code
dank
date
datum
dezember
ende
ergebnis
januar
klammer vergessen
klammern
laut lehrbuch
machen
monat
struktur
waldorf
zeile
-
Immer wieder mal ein ein neues Prob. Diesmal geht es um eine
Datumsfunktion, die in der Datei #_functions.inc definiert werden
soll. Die Idee ist, sich von Mysql eine Unix-Zeitangabe schicken
zu lassen und diese dann zu formatieren mit deutschen Monatsnamen.
Dies soll mit einem Array geschehen.
Zur Erläuterung:
$zeit = date("H:i" , 11200);
würde die Zeit 11.200 Sek. nach Beginn der Unix-Zeitrechnung geben.
$zeit = date("H:i"); liefert den aktuellen Zeitpunkt.
Nach Def. des Arrays wird eine If-Abfrage gestartet. Wenn die
Funktion datum (now)lautet, soll die aktuelle Zeit mit deutschen
Monatsnamen gegeben werden. Andernfalls - datum (11200) - der Unix-Timestamp.
<? function datum($t) { $monat = array("Januar","Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"); if ($t == "now") $ergebnis = date("j. ").htmlentities($monat[date("n")-1]).date(" Y, H:i"); else $ergebnis = date("j. ",$t).htmlentities($monat[date("n",$t)-1].date(" Y, H:i:s",$t); return $ergebnis; } ?>
So weit, so gut... Nun erscheint aber immer folgende Fehlermeldung:
nämlich "Parse Error unexpected ';' " für die Zeile 5.
Weiß jemand, warum??
Danke!
Beitrag geändert: 19.9.2008 12:47:22 von waldorf -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Eine Klammer vergessen...
else $ergebnis = date("j. ",$t).htmlentities($monat[date("n",$t)-1].date(" Y, H:i:s",$t));
-
Eine Klammer vergessen...
else $ergebnis = date("j. ",$t).htmlentities($monat[date("n",$t)-1].date(" Y, H:i:s",$t));
Klasse, genaus das war's. Dann zum zweiten mal Danke!War übrigens ein Fehler im Handbuch...
-
@trueweb:
Kapiert hab ich es allerdings noch nicht: warum gehören in Zeile 5
2 schließende Klammern am Ende hin, aber nicht in Zeile 4?
Ist doch dieselbe Struktur??
Weil in Zeile 4 die Klammer von den htmlentities() schon nach dem $monat[] Array zugeht ... evtl. müßte das auch in Zeile 5 schon dort zugehen... das können wir nicht wissen, müßtest du entscheiden - was du willst.
4: if ($t == "now") $ergebnis = date("j. ").htmlentities($monat[date("n")-1]).date(" Y, H:i"); ^^^
in Zeile 5 fehlt die Klammer dort...
5: else $ergebnis = date("j. ",$t).htmlentities($monat[date("n",$t)-1].date(" Y, H:i:s",$t)); ^^^
Trueweb hat einfach nur festgestellt dass eine Klammer fehlt und diese sporatisch am Ende hinzugefügt.
Edit:
in deinem Fall wäre, die Klammersetzung wohl egal, weil in Zeile 5 würde dann halt auch das Datum mit auf Entities überprüft, was es in Zeile 4 nicht macht.
Laut Lehrbuch soll es dann wahrscheinlich so aussehen:
<?php if ($t == "now") $ergebnis = date("j. ") .htmlentities($monat[date("n")-1]) .date(" Y, H:i"); else $ergebnis = date("j. ",$t).htmlentities($monat[date("n",$t)-1]).date(" Y, H:i:s",$t); ?>
Grüßle
Beitrag geändert: 19.9.2008 13:35:31 von scout -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage