如何通过比较Laravel中的两个日期来搜索条目?

时间:2017-12-06 16:51:17

标签: php laravel

我有一个包含列varchar的表" date_start"和列varchar" date_end"。

以下是存储在日期中的日期示例:

2016-01-05 00:00:00

我想收集两个日期之间的所有元素。我试过这个,但它不起作用:

$dateStart = $request->get('date_start'); // Return 1990-01-01
$dateEnd = $request->get('date_end'); // Return 2017-12-06

$query = Event::published();

if ($dateStart != '') { $query->where('date_start', '<=', $dateStart); };
if ($dateEnd != '') { $query->where('date_end', '>=', $dateEnd); };

$items = $query->get();

返回的查询:

select * from `events` where `status` = 'PUBLIÉE' and `date_start` <= '1990-01-01' and `date_end` >= '2017-12-06' order by `updated_at` desc`

1 个答案:

答案 0 :(得分:1)

这应该有效

$query->where('date_start', '>', $dateStart)->where('date_end', '<=', $dateEnd)->get();