suntrop
Erfahrenes Mitglied
Hallo PHPler
Ich möchte den relativen Zeitversatz zum heutigen Tag ausgeben. Zum Beispiel: heute, gestern, morgen, am Sonntag, vor 12 Tagen, etc.
Ich habe jetzt schon viele Möglichkeiten versucht. Rechnen mit dem timestamp und den vergangenen Sekunden geht nicht. Ist es aktuell 00:05 Uhr und mein Vergleichszeitpunkt ist 10 Minuten früher, dann will ich "gestern" ausgeben. Also kann ich nicht mit den verstrichenen Sekunden arbeiten.
Mit einem DateTime-Objekt und diff() kann ich scheinbar auch nicht korrekt rechnen. Denn zum einen erhalte ich immer nur positive Werte (egal ob es vor 3 Tagen ist oder in 3 Tagen). Außerdem scheint diff() nicht in Tagen sondern auch in Zeitabständen zu rechnen. Gestern muss also mindestens 24 Stunden zurück liegen. Andernfalls ist es nicht gestern
Ein Zeitpunkt vor 20 Stunden wird leider auch als "heute" ausgegeben.
Was kann ich bei der Misere mache? Für heute, morgen, gestern kann ich noch einen direkten Datumsvergleich (Y-m-d) machen. Aber wie berechnen ich die tatsächlichen vergangenen Tage?
Sorry, ich glaube ich habe mich etwas umständlich ausgedrückt :-(
Hoffe dennoch auf Unterstützung. Danke und Grüße.
Ich möchte den relativen Zeitversatz zum heutigen Tag ausgeben. Zum Beispiel: heute, gestern, morgen, am Sonntag, vor 12 Tagen, etc.
Ich habe jetzt schon viele Möglichkeiten versucht. Rechnen mit dem timestamp und den vergangenen Sekunden geht nicht. Ist es aktuell 00:05 Uhr und mein Vergleichszeitpunkt ist 10 Minuten früher, dann will ich "gestern" ausgeben. Also kann ich nicht mit den verstrichenen Sekunden arbeiten.
Mit einem DateTime-Objekt und diff() kann ich scheinbar auch nicht korrekt rechnen. Denn zum einen erhalte ich immer nur positive Werte (egal ob es vor 3 Tagen ist oder in 3 Tagen). Außerdem scheint diff() nicht in Tagen sondern auch in Zeitabständen zu rechnen. Gestern muss also mindestens 24 Stunden zurück liegen. Andernfalls ist es nicht gestern
PHP:
$today = new DateTime();
$yesterday = new DateTime('-1 day');
$tomorrow = new DateTime('+1 day');
$due = new DateTime($date);
$span = $due->diff($today)->days;
if ($span == 0)
{
return 'heute';
}
Was kann ich bei der Misere mache? Für heute, morgen, gestern kann ich noch einen direkten Datumsvergleich (Y-m-d) machen. Aber wie berechnen ich die tatsächlichen vergangenen Tage?
Sorry, ich glaube ich habe mich etwas umständlich ausgedrückt :-(
Hoffe dennoch auf Unterstützung. Danke und Grüße.