我有一段代码,其中我传递的Carbon日期如下:
2017-08-18 22:53:50.031922
并希望将其与某些记录的created_at
时间戳进行比较。但是,似乎记录没有被过滤掉;是where语句中的比较有效吗?
$test = Auth::user()->tests()->with([
'participants.testRecords' => function ($query) use ($latestCapture) {
$query->select('id', 'score', 'test_id', 'participant_id', 'capture_timestamp', 'score', 'created_at');
$query->where('test_records.created_at', '>', $latestCapture);
}])->findOrFail($id)->toArray();
答案 0 :(得分:2)
如果$latestCapture
是instancej Carbon,你应该在这里使用:
$latestCapture->toDateTimeString()
确保传递有效的日期字符串。
还有一件事 - 你应该确保created_at
填充PHP而不是MySQL(这是Laravel中的默认值) - 如果不是,你可以预期当你有不同的时区时,时间会有所变化PHP和MySQL