2017-01-06 5 views
0

Я пытаюсь получить значения между двумя датами. У меня есть данные между датами, но он возвращает пустое.Laravel Eloquent, где между двумя датами нет

$oneMonthAgo = date('Y-m-01 00:00:00', strtotime('-1 month')); 
$thisMonth = date('Y-m-01 00:00:00', strtotime('0 month')); 
$nextMonth = date('Y-m-01 00:00:00', strtotime('+1 month')); 


$cezalar = DB::table('cezalar') 
    ->where('ceza_tarih', '>=', $oneMonthAgo) 
    ->where('ceza_tarih', '<', $thisMonth) 
    ->get(); 

return $cezalar; 
+0

Вы просмотрели журнал запросов, чтобы узнать, что генерируется SQL? –

+0

Нет, где я смотрю? – yigitozmen

+0

Вы можете попробовать и установить панель отладки laravel, блестящим barryvhd: https://github.com/barryvdh/laravel-debugbar –

ответ

0

первого примечание: вы используете «конструктор запросов» не красноречивы,

, и если вы хотите получить один месяц назад даты вы должны использовать что-то вроде этого: $oneMonthAgo = date('Y-m-d 00:00:00', strtotime('-1 month')); Я проверил это в моем собственное приложение, и он работает ...

1

Вы можете попробовать что-то вроде этого:

$thisMonth = \Carbon\Carbon::now()->startOfMonth(); 

$oneMonthAgo = \Carbon\Carbon::now()->subMonth()->startOfMonth(); 

$dateRange = [$oneMonthAgo, $thisMonth]; 

$cezalar = DB::table('cezalar')->whereBetween('ceza_tarih', $dateRange)->get(); 

Проверить Carbon, который доступен из коробки, в Laravel.

Смежные вопросы