如何仅使用Y-m-d部件通过created_at日期从集合中获取项目?

时间:2016-11-25 14:36:08

标签: laravel

我有一个包含created_at行的记录的集合。现在我希望没有时间按日期获取特定行。我的意思是:

$users->whereLoose('created_at', '2016-11-23')

当然这会返回空,但我需要使用的格式是“Y-m-d”而没有“H:i:s”部分。如何使用这种格式从集合中获取记录?

3 个答案:

答案 0 :(得分:4)

您还可以使用filter方法和isSameDay()方法。

$date = \Carbon\Carbon::parse('2016-11-23');

$usersForDate = $users->filter(function ($user) use ($date) {

    return $user->created_at->isSameDay($date);

});

希望这有帮助!

答案 1 :(得分:1)

你可以这样做:

$date = Carbon::parse('2016-11-23');
$users->where('created_at', '>', $date->startOdDay())
      ->where('created_at', '<', $date->endOfDay());

或者你可以试试这个:

$users->whereDate('created_at', '=', '2016-11-23');

答案 2 :(得分:1)

您可以尝试使用文档https://laravel.com/docs/5.2/collections上的集合中的map()函数:

https://laravel.com/docs/5.2/collections#method-map

$collection = collect(['taylor', 'abigail', null])->map(function ($name) {
    return strtoupper($name);
})
->reject(function ($name) {
    return empty($name);
});