Kai*_*all 12 php mysql datetime laravel eloquent
我正在尝试从日期列高于或等于当前时间的模型中获取关系数据.
日期列格式如下:Ymd H:i:s
我想要做的是抓住Ymd H:i:s未来的所有行.
示例:假设日期为2017-06-01,时间为09:00:00然后我希望获得日期为将来的所有行,时间是将来的.
目前我的代码看起来像这样,它几乎正常工作,但它没有抓住日期是当天的行.
public function customerCardFollowups() {
return $this -> hasMany('App\CustomerCardFollowup', 'user_id') -> whereDate('date', '>', Carbon::now('Europe/Stockholm')) -> orderBy('date', 'asc') -> take(20);
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?提前致谢.
Ale*_*nin 17
听起来像你需要使用>=,例如:
->whereDate('date', '>=', Carbon::now('Europe/Stockholm'))
Run Code Online (Sandbox Code Playgroud)
Abd*_*ieh 11
使用whereDate将仅比较日期并忽略时间。因此,您的解决方案将给出至少一天后的记录,并且不包括同一天但较晚时间的记录。
如果您>=按照其他答案中的建议使用,您将获得从当前日期开始的记录以及甚至在确定时间之前的记录。
一种解决方案是比较使用whereRaw. 在您的代码中,日期的条件将如下所示:
-> whereRaw("date > STR_TO_DATE(?, '%Y-%m-%d %H:%i:%s')" , Carbon::now('Europe/Stockholm')->format('Y-m-d H:i'));
Run Code Online (Sandbox Code Playgroud)
在代码中,我更改了 Carbon 日期的格式以匹配特定格式,您可以使用您想要的任何格式并将相同的格式放入 STR_TO_DATE 函数中。
| 归档时间: |
|
| 查看次数: |
35188 次 |
| 最近记录: |