Laravel - 使用 carbon 格式化来自 Mysql 数据库的日期

Laravel - format date from Mysql database with carbon

在我的 Laravel 项目中,我有一个 MySQL 数据库 table,其中包含以下列:

 |   requested_at  |
 2018-02-03 12:00:00
 2018-03-03 11:00:00

我想从该列中获取时间戳 (requested_at) 早于 60 天的所有项目:

$now = Carbon::now ();  

days  = DB::table('exampletable')->where('requested_at', '=', $now->subDays(60))->get();

对于我的以下代码,我需要从我的列 requested at 中格式化日期格式。

我只想得到这样的日期2018-03-03没有时间

我尝试了一些碳方法,但根本不起作用:

$format60 = Carbon::createFromFormat('Y-m-d', days);

你只需要 mysql 就可以实现,不需要碳。
仅使用 datediff()now() 的 mysql.
这样做

$days60  = DB::table('exampletable')
    ->whereRaw('datediff(now(),requested_at) = 60')
    ->get();

示例:-

看来您使用的是 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

Note: add requested_at into $dates array in your model for easier use