2015-06-23 3 views
8

Ich möchte den Unterschied der Zeit zwischen meiner Spalte "updated_at" (in der Datenbank mit Zeitstempel) und jetzt. Ich möchte, dass es menschenfreundlich wie folgt ist: vor 53 Minuten, vor 2 Stunden, vor 3 Tagen usw.Wie bekomme ich die Differenz der Zeit in menschlich lesbar mit Laravel 5

Gibt es irgendeine Funktion, die ich verwenden könnte, um es einfacher zu machen?

Um sicher zu sein, dass Sie mich verstehen, sagen wir, ich habe in meiner Datenbank eine Spalte updated_at, die 2015-06-22 20:00:03 entspricht. Es ist jetzt 20:00:28 also auf meiner Webseite würde ich gerne sehen: vor 25 Minuten. Wenn es höher als 59 Minuten ist, möchte ich nur Stunden anzeigen und wenn es höher als 24 Stunden ist, würde ich gerne sehen, wie viele Tage zuvor.

+0

Werfen Sie einen Blick auf [diese] (https://gist.github.com/ozh/8169202) (auf Google gefunden) –

+0

Blick auf die Datetime-Klasse und die diff-Methode [im Handbuch] (http : //php.net/manual/en/class.datetime.php) – RiggsFolly

+0

Sie könnten [Carbon] (http://carbon.nesbot.com/) verwenden, es kommt mit Laravel. –

Antwort

29

Standardmäßig konvertiert Eloquent die Spalten created_at und updated_at in Instanzen von Carbon. Wenn Sie also die Daten mit Eloquent abrufen, können Sie dies wie folgt tun.

$object->updated_at->diffForHumans(); 

Wenn Sie die Felder anpassen möchten, die automatisch mutiert werden, dann im Modell, Sie können sie besonders anfertigen, wie Sie wünschen.

// Carbon instance fields 
protected $dates = ['created_at', 'updated_at', 'deleted_at']; 
+1

Wow, genau das habe ich gesucht. diffForHumans(); Thx Burak, es hat mir viel geholfen –

+0

Laravel überrascht mich jedes Mal. – Farhad

+1

Genau das, was ich wollte. Danke – flangofas

Verwandte Themen