Получить базовый результат разницы между датой и временем (laravel 5.3)

У меня есть таблица конечные результаты, и я хочу получить результаты, в которых разница между текущей датой и временем составляет 2 дня от даты создания.

например, сегодня 19.04.2017. Я хочу получить все записи, где крайний срок 21.04.2017, потому что здесь разница в 2 дня между 19.04.2017 и 21.04.2017 или также, если 20.04.2017 это также должен извлекаться, однако, если разница больше 2, ее не следует извлекать.

Короче говоря, если разница между текущей датой и крайним сроком составляет 2 дня или меньше, следует получить

я пробовал как

$deliverables_dead = DB::table('deliverables')->where('user_id' , Auth::user()->id)->where('deadline' , '>' , Carbon\Carbon::now())->get();

он получает все записи, где крайний срок превышает текущее время.

Пожалуйста, помогите, как я могу получить ответ на приведенное выше жирное утверждение......


person Ramzan Mahmood    schedule 19.04.2017    source источник


Ответы (1)


Используйте whereBetween() и addDays() от Carbon:

DB::table('deliverables')
    ->where('user_id', auth()->id())
    ->whereBetween('deadline' , [Carbon\Carbon::now(), Carbon\Carbon::now()->addDays(2)])
    ->get();
person Alexey Mezenin    schedule 19.04.2017
comment
Уважаемый сэр, не могли бы вы обновить, пожалуйста, что я смогу узнать разницу в один день или 2 дня? - person Ramzan Mahmood; 19.04.2017
comment
@bluemoon вы имеете в виду, что хотите получить два результата - через 0-24 часа и через 24-48 часов? В этом случае я бы рекомендовал вам использовать Eloquent для загрузки данных с помощью приведенного выше запроса, а затем использовать помощники сбора для фильтрации результатов. - person Alexey Mezenin; 19.04.2017
comment
я просто хочу получить разницу в лезвии, однако я могу получить ее в контроллере как $date = Carbon\Carbon::parse($deliverables_dead->deadline); $now = Carbon\Carbon::now(); $length = $date->diffInDays($now); dd($length); как я могу сделать то же самое в лезвии? - person Ramzan Mahmood; 19.04.2017
comment
Используйте Eloquent и добавьте deadline к свойству $dates. Затем Laravel автоматически преобразует крайний срок в экземпляр Carbon. Тогда вы сможете сделать что-то подобное в Blade: {{ $deliverable->deadline->diffInDays(Carbon::now()) }} - person Alexey Mezenin; 19.04.2017