Ich habe zwei Zeitstempel, editiert_at, die ich erstellt habe, und erstellt_at (Laravel's) ... In der Datenbank haben beide den Typ Zeitstempel und den Standardwert 0000-00-00 00:00:00 ... Aber
var_dump(edited_at variable)
gibt Zeichenfolge. Während var_dump(created_at variable)
ist Objekt / Kohlenstoff. Was ist los mit diesen Zeitstempeln?
Ich muss beide vergleichen, nachdem ich mit dem Format ('U') in eine Ganzzahl konvertiert habe. Ich kann diese Methode nur für Carbon Object aufrufen. Wie kann ich das machen?
laravel
laravel-5
php-carbon
Hassan Saqib
quelle
quelle
Antworten:
Zunächst konvertiert Eloquent seine Zeitstempel (
created_at
,updated_at
) automatisch in Kohlenstoffobjekte. Sie können einfach verwendenupdated_at
, um diese nette Funktion zu erhalten, oderedited_at
in Ihrem Modell in der$dates
Eigenschaft angeben :protected $dates = ['edited_at'];
Nun zurück zu Ihrer eigentlichen Frage. Carbon hat eine Reihe von Vergleichsfunktionen:
eq()
gleichne()
nicht gleichgt()
größer alsgte()
größer oder gleichlt()
weniger alslte()
kleiner oder gleichVerwendung:
if($model->edited_at->gt($model->created_at)){ // edited at is newer than created at }
quelle
$date1->toDateString() == $date2->toDateString()
null
in ein PHPnull
anstelle eines Carbon-Objekts, und Sie erhaltencall to a member function lt() on null
.Carbon hat eine Reihe von Vergleichsfunktionen mit mnemonischen Namen :
Verwendung:
if($model->edited_at->greaterThan($model->created_at)){ // edited at is newer than created at }
Wenn Sie nicht sicher sind, auf welcher Carbon-Version Sie sich befinden, führen Sie diese aus
$composer show "nesbot/carbon"
Dokumentation: https://carbon.nesbot.com/docs/#api-comparison
quelle
Konvertieren Sie zunächst den Zeitstempel mithilfe der integrierten beredten Funktion, wie in dieser Antwort beschrieben .
Dann können Sie einfach Carbon's
min()
oder diemax()
Funktion zum Vergleich verwenden. Zum Beispiel:$dt1 = Carbon::create(2012, 1, 1, 0, 0, 0); $dt2 = Carbon::create(2014, 1, 30, 0, 0, 0); echo $dt1->min($dt2);
Dies ist
echo
das kleinere der beiden Daten, was in diesem Fall der Fall ist$dt1
.Siehe http://carbon.nesbot.com/docs/
quelle
So vergleiche ich 2 Daten, jetzt () und ein Datum aus der Tabelle
@if (\Carbon\Carbon::now()->lte($item->client->event_date_from)) ..... ..... @endif
Sollte genau richtig funktionieren. Ich habe die Vergleichsfunktionen von Carbon verwendet.
quelle