Laravel is a very popular PHP framework. Laravel 5.3 release few days ago and there are several new feature added by Laravel. you can also use with laravel 6, laravel 7, laravel 8, laravel 9 and laravel 10 version.
Laravel 5.3 introduce several new where conditions like whereDate(), whereMonth() etc in Query Builder. Today, i am going to show you how to use it in your Laravel Application.
I give you one example table and understand how works this four query builder functions one by one. So, first you can see bellow table with some records.
products table
whereDate()
whereDate() through we can make condition like date even column datatype timestamps. you can see bellow example how it is work.
Example:
$products = DB::table('products')
->whereDate('created_at', '2016-09-03')
->get();
dd($products);
Illuminate\Support\Collection Object
(
[items:protected] => Array
(
[0] => stdClass Object
(
[id] => 2
[name] => Gold
[description] => Gold Brand
[created_at] => 2016-09-03 00:00:00
[updated_at] => 2016-09-01 00:00:00
)
[1] => stdClass Object
(
[id] => 4
[name] => Toll
[description] => Toll Brand
[created_at] => 2016-09-03 00:00:00
[updated_at] => 2016-09-05 00:00:00
)
)
)
whereMonth()
whereMonth() will help to condition for get specific month records from date. for example if you have several records available with current timestamps then also you can simply condition with that timestamps column. you can see bellow example with output.
Example:
$products = DB::table('products')
->whereMonth('created_at', '09')
->get();
dd($products);
Illuminate\Support\Collection Object
(
[items:protected] => Array
(
[0] => stdClass Object
(
[id] => 1
[name] => Silver
[description] => Silver Brand
[created_at] => 2016-09-05 00:00:00
[updated_at] => 2016-09-01 00:00:00
)
[1] => stdClass Object
(
[id] => 2
[name] => Gold
[description] => Gold Brand
[created_at] => 2016-09-03 00:00:00
[updated_at] => 2016-09-01 00:00:00
)
[2] => stdClass Object
(
[id] => 4
[name] => Toll
[description] => Toll Brand
[created_at] => 2016-09-03 00:00:00
[updated_at] => 2016-09-05 00:00:00
)
[3] => stdClass Object
(
[id] => 5
[name] => Mart
[description] => Mart Brand
[created_at] => 2016-09-07 00:00:00
[updated_at] => 2016-09-05 00:00:00
)
)
)
whereDay()
whereDay() through we can get only specific day records from your timestamps column, like if you want to get every month 10th day records, you can see bellow example with output.
Example:
$products = DB::table('products')
->whereDay('created_at', '03')
->get();
dd($products);
Illuminate\Support\Collection Object
(
[items:protected] => Array
(
[0] => stdClass Object
(
[id] => 2
[name] => Gold
[description] => Gold Brand
[created_at] => 2016-09-03 00:00:00
[updated_at] => 2016-09-01 00:00:00
)
[1] => stdClass Object
(
[id] => 3
[name] => Plant
[description] => Plant Brand
[created_at] => 2016-08-03 00:00:00
[updated_at] => 2016-09-05 00:00:00
)
[2] => stdClass Object
(
[id] => 4
[name] => Toll
[description] => Toll Brand
[created_at] => 2016-09-03 00:00:00
[updated_at] => 2016-09-05 00:00:00
)
)
)
whereYear()
whereYear() will help to get only specific year records from your timestamps fields. you can see bellow example.
Example:
$products = DB::table('products')
->whereYear('created_at', '2016')
->get();
dd($products);
Read Also: Laravel – Where Condition with Two Columns Example
Illuminate\Support\Collection Object
(
[items:protected] => Array
(
[0] => stdClass Object
(
[id] => 1
[name] => Silver
[description] => Silver Brand
[created_at] => 2016-09-05 00:00:00
[updated_at] => 2016-09-01 00:00:00
)
[1] => stdClass Object
(
[id] => 2
[name] => Gold
[description] => Gold Brand
[created_at] => 2016-09-03 00:00:00
[updated_at] => 2016-09-01 00:00:00
)
[2] => stdClass Object
(
[id] => 3
[name] => Plant
[description] => Plant Brand
[created_at] => 2016-08-03 00:00:00
[updated_at] => 2016-09-05 00:00:00
)
[3] => stdClass Object
(
[id] => 4
[name] => Toll
[description] => Toll Brand
[created_at] => 2016-09-03 00:00:00
[updated_at] => 2016-09-05 00:00:00
)
[4] => stdClass Object
(
[id] => 5
[name] => Mart
[description] => Mart Brand
[created_at] => 2016-09-07 00:00:00
[updated_at] => 2016-09-05 00:00:00
)
)
)
Try to use it…..