Timestamp fehler....Aber wieso?

Grunge

Erfahrenes Mitglied
Hey Leute. . .
Ich hab in meinem Script eine Funktion um den aktuellen Wochentag auszulesen. Das funktioniert auch, aber mein Script gibt mir diesen Fehler aus:

Code:
Notice: Undefined variable: timestamp in /www/htdocs/w00d61e3/site/index.php on line 394

Der Code sieht so aus:
PHP:
$datum = date("Y-m-d",$timestamp);
$wochentage = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
$zeit = strtotime($datum);
$d=$wochentage[date("w", $zeit)];

In dieser Zeile soll dabei der Fehler sein
PHP:
$datum = date("Y-m-d",$timestamp);

Pack ich den Code in eine seperate Datei funktioniert alles ohne Fehler....Woran liegt das?
 
Ist ja auch logisch

die Var timestamp brauchst du ja auch gar nicht für den aktuellen Tag, ja und der Fehler kommt weil die var nicht definiert wurde...

du kannst auch gleich date('d.m.Y') z.B schreiben
 
Hallo!

es funktioniert ja auch ohne********
Was auch immer Du uns mit den Sternchen mitteilen willst.....

Fakt ist dass der 2. Parameter bei date() optional ist.
Wird dieser nicht angegeben, dann holte sich date() per time() den aktuellen Timestamp.

Gibst Du den 2. Parameter an, muss es auch ein gültiger Wert sein.
Also entweder eine Zahl oder eine Variable die (direkt/indirekt) auf eine Zahl verweist.

Du hast jedoch eine Variable angegeben, ohne auf eine Zahl zu verweisen.

PHP:
date("Y-m-d"); // gültig

date("Y-m-d", time()); // gültig

date("Y-m-d", 12345); // gültig

$timestamp = time();
date("Y-m-d", $timestamp); // gültig

$timestamp = 12345;
date("Y-m-d", $timestamp); // gültig

date("Y-m-d", $timestamp); // ungültig
Die Beispiele 1, 2 und 4 bringen Dich zum gleichen Ergebnis.
Die Beispiel 3 und 5 benutzen einen fest definierten Timestamp und bringen somit auch ein anderes Ergebnis.
Das letzte Beispiel bekommt durch die nicht definierte Variable "$timestamp" einen ungültigen Wert und führt somit zu dem Ergebnis "1970-01-01" (dem Beginn der UNIX Epoche).

Und Dein "Fehler" ist kein Fehler, sondern ein Hinweis.
In diesem Fall ein Hinweis auf die nicht definierte Variable "$timestamp".
Du könntest den Hinweis zwar mittels error_reporting() unterdrücken, jedoch ist dieses 1. nur Fusch und 2. würde als Ergebnis trotzdem 1970-01-01 herauskommen (was sicherlich nicht erwünscht ist ;)).

Gruss Dr Dau
 
Zuletzt bearbeitet:
Zurück