2017-12-22 17 views
2

私は比較的単純な質問があると思いますが、私はそれを誤解していると思います。 falses私は日が未来にある場合は、言うことを宣言したいところであるあるLaravelとCarbon - DiffInDays Ifステートメント

@if (Carbon\Carbon::parse($shipment->due_date)->diffInDays(false) > 0 && Carbon\Carbon::parse($shipment->due_date)->diffInDays(false) < 10) 

は、私はテーブルのセルの一つで、私はif文を持っているインデックスページを持っています今日までの明日のように、-1が返されますが、私が昨日を参照すると1が返されます。 http://carbon.nesbot.com/docs/#api-humandiff

私は同じレイアウト上で、私はこれを行うことができますことを言及すべきであるしかし:

問題は、私はドキュメントを使用しようとしていますが、彼らは関係なく、私はそれらを試してみてください方法の種類を私のために並んでされていないです。

{{Carbon\Carbon::parse($shipment->due_date)->diffInDays()}} 

と(両方が正であっても)、過去や未来の日数を返しますので、私は(のように、私はまだ言及した正または負の必要があります)上記の作品を知っています。

答えて

3

diffInDays()の最初のパラメータとしてCarbonの日付を指定する必要があります。だから、ロジックは次のようになります。

Carbon\Carbon::parse($shipment->due_date)->diffInDays(now(), false) 

または:

now()->diffInDays(Carbon\Carbon::parse($shipment->due_date), false) 

あなたが達成しようとしている正確に何によって。

false 2番目のパラメータとして、メソッドは符号付きの値(正または負)を返します。

を使用でき
0

:私はそれがだと思うあなたのロジックを見てまた

public function diffInDays(Carbon $dt = null, $abs = true) 
{ 
    $dt = $dt ?: static::now($this->getTimezone()); 

    return (int) $this->diff($dt, $abs)->format('%r%a'); 
} 

Carbon\Carbon::parse($shipment->due_date)->diffInDays(null, false) 

Carbon\Carbon::parse($shipment->due_date)->diffInDays(false) 

の代わりに、これはbecuaseメソッドシグネチャで、このようになります。複雑すぎる。

Illuminate\Support\Carbon 

の代わり:

@if (Carbon\Carbon::parse($shipment->due_date)->diffInDays(null, false) < 10) 

第一の条件は、私はあなたがむしろ使うべきLaravel 5.5を使用している場合にも

を信じる必要はありません。私はそれを使用するのに十分だと思います

Carbon\Carbon 

このクラスにカスタムメソッドを追加したい場合

関連する問題