在我的Laravel项目中,我有一个My SQL数据库,其中包含以下列:
| requested_at |
2018-02-03 12:00:00
2018-03-03 11:00:00
我想从此列获取时间戳(requested_at)超过60天的所有项目:
$now = Carbon::now ();
$60days = DB::table('exampletable')->where('requested_at', '=', $now->subDays(60))->get();
对于我的以下代码,我需要格式化我的列requested at
中的日期格式。
我只想在没有时间的情况下收到这个2018-03-03
的日期。
我玩了一些碳方法,但它根本不起作用:
$format60 = Carbon::createFromFormat('Y-m-d', $60days);
答案 0 :(得分:1)
你只能通过mysql实现这一点,不需要碳
只需使用mysql的 datediff()
和 now()
。
这样做
$days60 = DB::table('exampletable')
->whereRaw('datediff(now(),requested_at) = 60')
->get();
答案 1 :(得分:1)
您似乎正在使用TIMESTAMP类型
->where('requested_at', '<=', now()->subDays(60)->startOfDay())->get();
如您所见,无需格式化Carbon
实例。
打破一切:
now() // Laravel helper to get Carbon::now()
->subDays(60) // subtract 60 days
->startOfDay() // set time part of timestamp to start of the day
注意:将
requested_at
添加到$dates
array in your model以便于使用