Datum ersetzen durch Heute oder Gestern

Nuka

Mitglied
Wie kann ich in PHP das Datum von den 06.07.2004 mit Heute und den 05.07.2004 mit gestern ersetzen?
Ich habe es bis jetzt nur geschaft das Datum den 06.07.2004 durch Heute zu ersetzen.
PHP:
<?php
function formatdate($timestamp)
{
	if(date("d.m.Y",$timestamp) == date("d.m.Y"))
		return $timestamp = "<b>Heute</b> - ".date("H:i:s",$timestamp)."";
	else
		return date("d.m.Y - H:i:s",$timestamp);
}
?>
 
PHP:
$timestamp = time(); // genau heute (jetzt)
$gestern = $timestamp - 60*60*24 // genau 24 Stunden vorher, also gestern
 
dann habe ich aber nur den timestamp von jetzt-24h, also genau die sekunde. ein tag besteht aber aus 60*60*24 sekunden, nicht nur aus einer.
 
Oje... :rolleyes:

Also folgendes: Du ermittelst den Timestamp von vor genau 24 Stunden. Daraus generierst du dann das gestrige Datum und überprüfst dann, ob es mit dem Datum aus der DB übereinstimmt. Alles klar?
 
Ja, ich verstehe das wenn man es mir erklärt besser;).
Manchmal fällt mir einfach nichts mehr ein, da brauhce ich Hilfe.
 
Vielleicht könnte man auch direkt bei der SQL-Abfrage das ganze mit IF-Anweisung in die SQL-Anweisung mit einbauen? Das müsste sich eigentlich machen lassen, nur kann ich das jetzt nicht aus dem Kopf. Nur mal so als Denkanstoß. Ich versuchs mal selbst hier.

EDIT:
So, habe was gefunden. Ich hab es bei mir ausprobiert. Ist der Zeitpunkt als DATETIME und Feldname "Zeit" in der Tabelle gespeichert. So sieht meine Abfrage aus:
PHP:
$sql = "SELECT ".
  "IF (".
  "(TO_DAYS(Zeit)+1) = TO_DAYS(NOW()), 'Gestern', ".
  "IF (TO_DAYS(Zeit) = TO_DAYS(NOW()), 'Heute', ".
  "DATE_FORMAT(Zeit, '%d.%m.%Y %H:%i:%S')) AS wort ".
  "FROM tabelle ".
  "ORDER BY Zeit DESC";

Als Ergebnis bekommst du eine Spalte mit dem Namen "wort" zurückgeliefert, die entweder "Gestern", "Heute" oder die Zeitangabe in der Form TT.MM.JJJJ HH:MM:SS beinhaltet. Die SQL-Anweisung kannst du nun beliebig erweitern falls du noch mehr Daten auslesen willst.
 
Zuletzt bearbeitet:
Danke für deine Mühe, aber ich glaube da bleibe ich bei meiner vor kurzem geschriebenem Funktion;), damit kann ich ohne großen aufwand die Betrefenden Dateien umschreiben.
PHP:
<?php
function formatdate($timestamp)
{
	global $language;
	if(date("d.m.Y",$timestamp) == date("d.m.Y"))
		$time = "<strong>$language[general_today]</strong>, ".date("H:i",$timestamp)."";
	elseif(date("d.m.Y",$timestamp) == date("d.m.Y",time()-60*60*24))
		$time = "<strong>$language[general_yesterday]</strong>, ".date("H:i",$timestamp)."";
	else
		$time = "".date("d.m.Y H:i",$timestamp)."";
	return $time;
}
?>
 
Zuletzt bearbeitet:
Zurück