Laravel/Eloquent 和比较日期

标签 laravel eloquent

我想返回数据库表中一天或更短的所有行。我正在使用 Laravel 4。这是我尝试过的:

$date = date('Y-m-d H:i:s');
return MainContact::where(DATEDIFF('timestamp', $date), '<=', 1)->get();

这不起作用。我阅读了文档,似乎您无法传递 Laravel MySQL 函数。 timestamp是一个日期时间字段。如何在 Laravel 4 中比较这些日期?

最佳答案

user1977808 给你的答案并不好,因为 MySQL 不能在时间戳列上使用索引,因为它必须为每一行计算 DATE_SUB 函数的输出。避免这样的查询,他们每次都必须处理整个表!

这样的事情怎么样:

return MainContact::where('timestamp', '>=', time() - (24*60*60))->get();

我把>=在那里,因为你说“一天或更短”,所以他们的时间戳必须晚于昨天。

关于Laravel/Eloquent 和比较日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14346431/

相关文章:

php - Laravel Eloquent 地与Trashed关系

php - Laravel 5 数据透视表问题

php - 使用 Laravel 检查该值是否已存在于数据库中

php - 在 Eloquent Laravel 5.2 中加入 2 个表 - 如何从两个表中检索所有数据?

laravel - 使用 Laravel Echo 加入 channel 时,如何判断身份验证失败?

javascript - 仅当用户交互但未获取隐藏输入字段中的值时才触发加载 recaptcha 库

php - Eloquent firstOrNew 导致重复录入错误

javascript - 即时更改输入法

php - mock 似乎无法正常工作

laravel - Eloquent 地计算不同的地位