如何在Laravel中检索当前日期的数据

时间:2019-02-19 06:52:26

标签: php sql laravel

我想从Laravel的数据库中检索今天的数据。

我已经谷歌搜索并应用了几种方法,但没有得到我的答案。

PrescriptionTbl::whereDate('created_at', '=', $today)->get();

其中PrescriptionTbl是模型,today是当前日期,例如2019-2-19。但是得到了NULL数组。

要检查SQL,我使用了toSQL()而不是get() ...它显示在浏览器中的SQL下方

 select * from `prescription_tbls` where date(`created_at`) = ?

我也使用了Carbon,但也得到了一个空数组

PrescriptionTbl::whereDate('created_at', Carbon::today())->get();

如何解决?有人帮忙吗?

6 个答案:

答案 0 :(得分:2)

您可以使用它;

PrescriptionTbl::whereDate('created_at', date('Y-m-d'))->get();

答案 1 :(得分:0)

您可以尝试以下一种方法:

PrescriptionTbl::where('created_at', '<=', date('Y-m-d 00:00:00'))->get();

答案 2 :(得分:0)

created_at是一种日期/时间格式的时间戳,因此,除非您提供整个时间戳,否则等号运算符将不起作用。

您只能使用documentation

中所述的whereDate方法比较日期
PrescriptionTbl::whereDate('created_at', $today)->get();

答案 3 :(得分:0)

您可以使用whereBetween,在其中您可以提供今天的开始日期为2019-01-01 00:00:00,结束日期为2019-01-01 23:59:59

供参考 How to query between two dates using Laravel and Eloquent ORM?

答案 4 :(得分:0)

您可以通过new DateTime()类获得它

PrescriptionTbl::whereDate('created_at', '=', (new DateTime)->format('Y-m-d'))->get();

答案 5 :(得分:0)

使用 Carbon (使用Carbon \ Carbon;)简单而美观

PrescriptionTbl::whereDate('created_at',  Carbon::today()->toDateString())->get();