2017-12-22 20 views
2

나는 비교적 간단한 질문이 있다고 생각하는데, 나는 그 부분을 오해하고 있다고 생각합니다. falses 내가 일이 미래에있는 경우라고 선언하고 싶은 곳이다 있습니다Laravel and Carbon - DiffInDays If Statement

@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::parse($shipment->due_date)->diffInDays(now(), false) 

또는 :

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

을 달성하려는 것을 정확하게에 따라.

false 두 번째 매개 변수로 메서드가 부호있는 값 (양수 또는 음수)을 반환하도록합니다.

0

당신은 사용할 수 있습니다

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

을이 becuase 메소드 서명입니다

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

의 장소는 다음과 같습니다 또한

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

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

당신의 논리보고

나는 그것이 생각 너무 복잡한.

Illuminate\Support\Carbon 

대신 :

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

첫 번째 조건은 당신이 당신이 오히려 사용해야 Laravel 5.5을 사용하는 경우 또한

믿을 필요는 없다 : 나는 그것을 사용하기에 충분하다고 생각

Carbon\Carbon 

이 클래스에 몇 가지 맞춤 메소드를 추가하려는 경우에 해당합니다.