Laravel比较where语句中的时间戳

时间:2017-08-18 19:43:43

标签: laravel laravel-5 eloquent laravel-5.4 php-carbon

我有一段代码,其中我传递的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();

1 个答案:

答案 0 :(得分:2)

如果$latestCapture是instancej Carbon,你应该在这里使用:

$latestCapture->toDateTimeString()

确保传递有效的日期字符串。

还有一件事 - 你应该确保created_at填充PHP而不是MySQL(这是Laravel中的默认值) - 如果不是,你可以预期当你有不同的时区时,时间会有所变化PHP和MySQL