16 Stimmen

Wie erstellt man ein freundliches Datumsformat (zum Beispiel "vor 2 Tagen eingereicht")?

Mögliches Duplikat:
Wie kann ich die relative Zeit berechnen?

Ich möchte in meiner Social-Web-Applikation Datumsangaben so formatieren, wie es Digg.com und andere Websites tun. Dort sieht man sehr freundliche Daten, wie z. B.:

  • gerade jetzt
  • vor 3 Minuten
  • vor einer Stunde
  • vor 2 Wochen
  • vor 6 Monaten
  • usw.

Bevor ich meinen Kopf um die Erstellung einer solchen Sache wickeln, weiß jemand von jeder ready-to-go-Skript für diese, wo ich einfach einen Datumsstempel einfügen und ein freundliches Datum Text wird basierend auf wie es in Bezug auf die aktuelle Zeit gegeben?

PS: Ich brauche dies in PHP, aber Pseudocode oder jede andere Sprache ist auch in Ordnung.

11voto

Paolo Bergantino Punkte 465120

Dies ist ein Duplikat von diesem Frage . Dort gibt es eine Fülle von Codebeispielen, wie dies zu bewerkstelligen ist, zusätzlich zu dem Code, den diese Website verwendet. Ich habe einen Blick darauf geworfen und es scheint dort auch eine PHP-Implementierung zu geben.

Zusätzlich zu all dem, wenn Sie jQuery verwenden, können Sie dies auf der Client-Seite mit etwas wie dem timeago Plugin. Es hat den Vorteil, dass der Text im Laufe der Zeit aktualisiert wird. Wenn Sie also eine Seite laden, auf der "vor 5 Minuten veröffentlicht" steht, und 5 Minuten später noch einmal nachsehen, steht dort "vor 10 Minuten veröffentlicht".

2voto

Fer Punkte 3935

Vielen Dank für die Antworten und Entschuldigung für die doppelte Frage. Ich habe das Duplikat nicht gefunden, als ich danach gesucht habe, weil ich nicht wirklich wusste, welche Suchbegriffe ich verwenden sollte.

Wie auch immer, ich habe mein Problem dank der PHP-Übersetzung des Codes von stackoverflow gelöst. Ich habe eine kleine Änderung bei der Berechnung des Deltas vorgenommen:

$delta = strtotime(gmdate("Y-m-d H:i:s", time())) - $time;

Da ich meine Daten in MySQL als Zeitstempel im GMT-Format speichere, muss ich dasselbe für die Berechnung der AKTUELLEN Zeit verwenden. Dies ermöglicht einen zeitzonenneutralen Vergleich, was in meinem Fall genau das Richtige ist.

0voto

Espo Punkte 40386

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X