2016-05-24 2 views

Antwort

2

zweimal konvertieren, warum?

Ein Problem, das ich mit Ihrer Frage ist, dass Sie das Datum aus dem DB als Y-m-d bekommen, dann ist es zu d/m/Y H:i:s Umwandlung dann Datumsauswahl als jS F Y zeigt, könnte man nicht eine Umwandlung ausgeschnitten eher als es zweimal umwandeln? Etwas zu beachten.

eine Carbon-Instanz New'ing bis

Wenn Sie ein Datum aus dem DB bekommen als Y-m-d dann können Sie direkt in die Carbon-Instanz übergeben Sie new'ing up:

$startDate = new Carbon($dateFromDB->startdate); 

Lesen Sie die Dokumentation: http://carbon.nesbot.com/docs/#api-instantiation

Dann Sie die format() Methode zur Ausgabe des gewünschten Datumsformat verwenden können:

$startDate->format('d/m/Y H:i:s'); // 26/05/2016 09:30:05 

$startDate->format('jS F Y'); // 26th May 2016 

Datum Mutatoren in Eloquent

Einen anderen Ansatz können Sie prüfen, ob Sie eloquent sind mit dem Datum erhalten Sie verwandeln ist das Datum automatisch auf eine Carbon-Instanz zu werfen, indem sie das $dates Attribut Hinzufügen in deinem Modell.

Zum Beispiel, wenn Sie das Datum start_date in Ihrem Modell ist, würden Sie dies tun:

class MyModel extends Model 
{ 
    protected $dates = ['start_date']; 
} 

Dann können Sie es direkt als Carbon-Instanz in Ihrem Code zugreifen:

MyModel::first()->start_date->format('d/m/Y H:i:s'); 

Siehe docs: https://laravel.com/docs/5.2/eloquent-mutators#date-mutators

PHP Nur

Sie können auch einfache alte PHP wie folgt verwenden das Datumsformat Sie benötigen zu bekommen:

$date = '2016-05-26 09:30:05'; 

$startDate = date('d/m/Y H:i:s', strtotime($date)); // 26/05/2016 09:30:05 

$startDate = date('jS F Y', strtotime($date)); // 26th May 2016 
+0

Excellent! Ich bin vertraut mit der PHP-Funktion date() und dem neueren DATETIME(). Aber ich wollte ein wenig Carbon verwenden, da meine Anwendung in Laravel ist und es wäre schön, die Sicherheitsfunktionen zu haben, die es bietet. Danke eine Million, das hat wirklich geholfen! – omrakhur

+1

@omrakhur Sie sind mehr als willkommen, so froh, dass ich helfen konnte! Es gibt eine Menge Funktionalität, die in Carbon integriert ist, daher sollten Sie in die Dokumentation und den Quellcode eintauchen, um mehr daraus zu machen. Glückliche Kodierung! – haakym

1
$dateFromDatabase = "2016-05-20"; 

$dt = Carbon::createFromFormat('Y-m-d', $dateFromDatabase); 

// Where js F Y results in 20th May 2016 
echo $dt->format('jS F Y');