2017-08-08 4 views
1

Ich möchte den Unterschied in Kalendertagen bekommen. Ich möchte Daten sehen, die heute, gestern und morgen mit relativen Zahlen (0, -1, 1) übereinstimmen.Diff in Kalendertagen mit PHP Carbon

Hier sind einige grundlegende Tests:

\Carbon\Carbon::now() // Out: 2017-08-08 09:16 ... 

// diffInDays() 

\Carbon\Carbon::now()->diffInDays(\Carbon\Carbon::now()->addHour(1)) // output: 0 
\Carbon\Carbon::now()->diffInDays(\Carbon\Carbon::now()->tomorrow()) // output: 0 
\Carbon\Carbon::now()->diffInDays(\Carbon\Carbon::now()->addHour(23)) // output: 0 
\Carbon\Carbon::now()->diffInDays(\Carbon\Carbon::now()->addHour(25)) // output: 1 


// diffInWeekDays() 

\Carbon\Carbon::now()->diffInWeekDays(\Carbon\Carbon::now()->addHour(1)) // output: 1 
\Carbon\Carbon::now()->diffInWeekDays(\Carbon\Carbon::now()->tomorrow()) // output: 1 
\Carbon\Carbon::now()->diffInWeekDays(\Carbon\Carbon::now()->addHour(23)) // output: 1 
\Carbon\Carbon::now()->diffInWeekDays(\Carbon\Carbon::now()->addHour(25)) // output: 2 

Beide Methoden scheinen Tage nach Perioden von 24 Stunden zu zählen. Was möchte ich mit „irgendeinemethode“ erhalten:

\Carbon\Carbon::now()->someMethod(\Carbon\Carbon::now()->addHour(1)) // output: 0 
\Carbon\Carbon::now()->someMethod(\Carbon\Carbon::now()->tomorrow()) // output: 1 
\Carbon\Carbon::now()->someMethod(\Carbon\Carbon::now()->addHour(23)) // output: 1 
\Carbon\Carbon::now()->someMethod(\Carbon\Carbon::now()->addHour(25)) // output: 1 

Gibt es eine Möglichkeit, meine benötigte Leistung innerhalb Kohlenstoff zu bekommen?

Ich habe ein ähnliches Problem im Carbon-Repository hier erstellt: https://github.com/briannesbitt/Carbon/issues/990

Jeder Kommentar oder Hilfe wird sehr geschätzt!

Antwort

2

Da die diffInDays() basiert auf 24 Stunden, können Sie durch die Verwendung startOfDay() Methode

\Carbon\Carbon::now()->startOfDay()->diffInDays(\Carbon\Carbon::now()->addHours(23)->startOfDay(), false) 

Notiere die false Parameter Trick die negative Anzahl der Tage

+0

Oh mein zu bekommen! Ich habe die gleiche Lösung gefunden und sie in Github veröffentlicht. Es funktioniert gut! Für mich deckt es zumindest meine Bedürfnisse ab. Ich fange an zu vermuten, dass es in Carbon keine native Methode gibt, um dieses Problem zu umgehen ... Danke! – Codi22