"Heute" oder "Gestern" anzeigen?

Kategorien: PHP & MySQL
10 Antworten
JayT
JayT am Samstag, 9. Juli 2005 um 13:53
Ich speichere in der DB das hier: $time = time(); $abfrage = "UPDATE thread SET time = '$time' WHERE id = '1'"; $ergebnis = mysql_query ($abfrage); nun habe ich time aus der DB in einer anderen Datei ausgelesen und will es umwandeln: if(date("d", $last_thread[time]) == date("d", time())) { $thread_time = "Heute"; } elseif(date("d", $last_thread[time]) == (date("d", time())-1)) { $thread_time = "Gestern"; } else { $thread_time = date("d.m.Y", $last_thread[time]); } Aber als Ausgabe habe ich [b]01.01.1970[/b] Die Spalte time ist so in der DB angelegt: Feld Typ Attribute Null Standard Extra time int(13) Ja NULL

Kommentare

unkie
unkie am Samstag, 9. Juli 2005 um 14:02

schau dir mal die abfrage an die DB an und dann das womit das date arbeiten soll!

cruz
cruz am Samstag, 9. Juli 2005 um 14:11

kontrollier mal was in der db steht .. vielleicht wird nicht richtig eingetragen und dein script stimmt eh ..

blackfeet
blackfeet am Samstag, 9. Juli 2005 um 17:13

Das Script stimmt, nur kannst du für einen Timestamp bei mysql nicht den TIME Typ verwenden.

dev.mysql.com/doc/mysql/de/time.html

JayT
JayT am Samstag, 9. Juli 2005 um 19:40

r0ck5tar hatte recht, er hat es nur nicht richtig eingetragen gehabt. Thx

Spike_php
Spike_php am Sonntag, 10. Juli 2005 um 16:26

mhh ich habe des so gemacht.

mit einem str_replace befehl.
er soll d.m.Y durch Heute ersetzten
und d-1.m.Y durch Gestern, um es mal grob zu amchen, und ich finde des geht wunderbar

FrAgDeViL
FrAgDeViL am Mittwoch, 13. Juli 2005 um 22:08

aber die hast du es hinbekommen, das d-1 einfach erkannt wird.
ich habe

$heute = date("d.m.Y");

für heute genommen und es haut hin.

für gestern

$gestern = date("d-1.m.Y");



wie schaffe ich es, das es auch so erkannt wird, wie ich es haben will.
es kommt immer eine null, obwohl mind. eine 3 stehen müsste.

wie muss der code denn aussehen?

Markus René Einicher
Markus René Einicher am Donnerstag, 14. Juli 2005 um 14:11

ich würde das so machen:

<?php
$gestern = date("d.m.Y",time()-86400);
?>

Den aktuellen Zeitstempel minus 86400 Sekunden, was genau ein Tag ist.

Spike_php
Spike_php am Donnerstag, 14. Juli 2005 um 14:34

Habe den code mal von meinem projekt kopiert

$this->text = str_replace(date(d)-1 . date(".m.Y"),"Gestern",$this->text);
$this->text = str_replace("0Gestern","Gestern",$this->text);

aber ich denke mal von Easterstorm(hoffe des ist richtig geschrieben^^) die Lösung ist besser und valieder, aber bei ihm bekommst du nur einen timestamp zurück geliefert, also würde ich eher meine Lösung nehmen.

FrAgDeViL
FrAgDeViL am Donnerstag, 14. Juli 2005 um 16:57

ich habs mit EaStErDoM's variante ausprobiert und es klappt wunderbar.
danke

Spike_php
Spike_php am Donnerstag, 21. Juli 2005 um 15:32

jop okay, dann würde ich es aber trotzdem mit einem str_replacebefehl machen.