我有一个包含created_at行的记录的集合。现在我希望没有时间按日期获取特定行。我的意思是:
$users->whereLoose('created_at', '2016-11-23')
当然这会返回空,但我需要使用的格式是“Y-m-d”而没有“H:i:s”部分。如何使用这种格式从集合中获取记录?
答案 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);
});