Reputation: 145
I want to count records where updated_at is 2 hours older than created_at.
$teLang = $kentekens->where('updated_at', '>', 'created_at'->subHours(2));
Unfortunately this doesn't work because subHours(2) is for carbon but hopefully you get the idea.
<h1>{{ $teLang->count() }}</h1>
public function create() {
$kentekens = Kenteken::latest()
->where('created_at', '>=', Carbon::today())
->get();
$teLang = $kentekens->where('updated_at', '>', 'created_at'->subHours(2));
return view('layouts.dashboard', compact('kentekens', 'teLang'));
}
anyone know how?
Upvotes: 4
Views: 1954
Reputation: 4962
$kentekens->whereRaw('`updated_at` > DATE_ADD(`created_at`, INTERVAL 2 HOUR)');
SQL:
select `id` from `tablename` where `updated_at` > DATE_ADD(`created_at`, INTERVAL 2 HOUR)
Upvotes: 4
Reputation: 1
Maybe so?
public function create() {
$kentekens = Kenteken::latest()
->where('created_at', '>=', Carbon::today())
->get();
$cr = Carbon::create($kentekens->created_at);
$teLang = $kentekens->where('updated_at', '>', $cr->addHours(2));
return view('layouts.dashboard', compact('kentekens', 'teLang'));
}
Upvotes: 0
Reputation: 163968
Use the filter()
method. Using your code logic:
$teLang = $kentekens->filter(function($i) {
return $i->updated_at->gt($i->created_at->subHours(2));
});
Using this statement "where updated_at is 2 hours older than created_at":
$teLang = $kentekens->filter(function($i) {
return $i->updated_at->lt($i->created_at->subHours(2));
});
Upvotes: 2