Seite 1 von 1

Verfasst: 06.04.2004, 18:45
von pfuchs
Was ich aber noch nicht verstehe:
$timestamp = mktime(12,30,15,02,22,2004);
doConditionalGet($timestamp);

Trage ich als timestamp ein Datum nach 01.04.2004 ein, also
$timestamp = mktime(12,30,15,04,01,2004);

bekomme ich stets als Header ausgegeben:
Last-Modified: Thu, 01 Jan 1970 00:00:00 GMT

Trage ich als Datum jedoch etwas vor dem 01.04.2004 ein, bekomme ich das entspr. Datum angezeigt.

Gibt es dafür eine Erklärung?

Beste Grüsse, Peter

Verfasst:
von

Verfasst: 06.04.2004, 20:09
von Southmedia
Mit dem von dir angegebenen Beispiel bekomme ich folgendes zurück:
Last-Modified: Thu, 1 Apr 2004 12:30:15 GMT
Bei mir passt das...

Verfasst: 09.04.2004, 05:25
von Southmedia
Also ich weiss nicht wieso es manchmal funktioniert, manchmal nicht. Bei mir ist aber soeben der selbe Fehler aufgetreten wie bei Peter.

Hab nachgelesen und klar, man muss bei Monat und Tag keine zweistelligen Zahlen nutzen sondern einfach 4 und 1. Dann gehts durchgehend.

Verfasst: 09.04.2004, 08:55
von pfuchs
Hallo Jan,

da bin ich jetzt beruhigt - dachte schon ich wäre etwas gaga.

Frohe Ostern, Peter

Verfasst: 09.04.2004, 10:28
von pfuchs
Ich habe es jetzt eben nochmal mit dem einstelligen Zahlen ausprobiert. - Fehlanzeige, das Problem bleibt bestehen.

Witzig ist, wenn ich ein Datum in der Zukunft mit zweistelligem Tagesdatum wähle (heute ist der 09.04.04) also zum Beispiel
$timestamp = mktime(12,30,15,4,10,2004);

bekomme ich als last modified genau die aktuelle Uhrzeit angezeigt.

Nehme ich ein Datum in der Zukunft mit einstelligem Tagesdatum, also zum Beispiel
$timestamp = mktime(12,30,15,5,9,2004);
bekomme ich wieder den berühmten 1.1.1970 angezeigt.

Und gebe ich den Monat einstellig und den Tag zweistellig ein
$timestamp = mktime(10,30,15,4,09,2004);
bekomme ich den 31. März 2004 ausgespuckt

Also ich kapiere es momentan nicht...

Beste Grüsse, Peter

Verfasst: 09.04.2004, 12:29
von Southmedia
Dann nimm mal folgenden Code zum Testen:

Code: Alles auswählen

<?php
$timestamp = mktime&#40;x, x, x, x, x, x&#41;;
echo date&#40;'d M Y H&#58;i&#58;s', $timestamp&#41;;
?>
Die Reihenfolge der Argumente werden zB hier aufgezeigt:
https://www.php3.de/mktime

Verfasst: 09.04.2004, 14:39
von Southmedia
So, ich habe die Lösung. (Bin aber noch am Testen...)

Das Problem lag in der Verwendung der date("r")-Funktion, diese liefert einstellige Zahlen für den Tag, nicht 2stellig wie gefordert.

Die Lösung ist folgende:

Code: Alles auswählen

$last_modified = substr&#40;date&#40;'r', $timestamp&#41;, 0, -5&#41;.'GMT';

ist zu ersetzen mit

$last_modified = gmdate&#40;"D, d M Y H&#58;i&#58;s", $timestamp&#41;.' GMT';
In den Codebeispielen im anderen Thread habe ich die Zeile ersetzt.

Verfasst: 09.04.2004, 15:38
von pfuchs
Hi Jan,

jetzt geht es bei mir.

Tag und Monat muss ich jedoch weiterhin einstellig eingeben (für heute z.b.).

Thanks a lot, Peter

Verfasst: 09.04.2004, 15:55
von Southmedia
Ja, mktime() braucht weiterhin einstellige Eingaben, das ist so bei dieser Funktion. Aber selbst wenn man das gemacht hat gab es ja Probleme... und die sind nun weg.

Verfasst: 09.04.2004, 16:05
von pfuchs
Hallo Jan,

habe es jetzt so eingestellt, dass immer der Vortag angezeigt wird
$tag = date("j");
$monat = date("n");
$jahr = date("Y");
$timestamp = mktime(00,00,01,$monat,$tag,$jahr);

Dadurch bekomme ich stets 22:00:01 des Vortages angezeigt. Die zwei Stunden Differenz rühren wohl von einer Zeitsverschiebung her, was mich aber nicht stört.

Schade nur, dass dies momentan nur für meine Startseite (index.php) greift.

Alle anderen Seiten werden über Rewrite Engine umbenamst a´la
RewriteEngine on
RewriteCond %{REQUEST_URI} kick-(.*)\.html$
RewriteRule kick-(.*)\.html$ /index.php?viewCat=$1
Und nachdem die Seite(n) kick*.html ja physisch nicht existieren, kann ich auch keinen header einbauen.

Oder gibt es da über htaccess eine Möglichkeit?

Anyway - bin jetzt erstmal froh, dass es überhaupt funktioniert.

Beste Grüße, Peter

Verfasst: 09.04.2004, 16:08
von Southmedia
Da die effektive Datei die index.php ist funktioniert das. Ohne Probleme.

Verfasst: 09.04.2004, 20:01
von pfuchs
Stimmt, lag letztens wohl an meinen generellen Problemen mit dem header, das es bei mir nicht zu funktionieren schien.

Peter