从查询中的日期属性获取年份

时间:2018-07-24 14:36:38

标签: laravel eloquent php-carbon

我知道我可以像这样从碳中获取数据。

这是当前年份。

$current = Carbon::now();
$year = Carbon::createFromFormat('Y-m-d H:i:s', $current)->year;

我有一个查询,可以查询用户的所有约会。我需要获取当前日历年度的所有约会。

我有以下查询

$appointments = Appointments::where('id', $id)
                            ->where('event_end_time', '<', $current)
                            ->count();

我如何查看活动结束时间(日期)年。例如,如果日期为2018年11月5日,我能否获取年份(2018)并检查约会是否在2018年发生

2 个答案:

答案 0 :(得分:1)

Laravel的查询生成器包括用于此的方法:

whereYear('event_end_time', $year)

在原始SQL中,这是where year(event_end_time) = ?

答案 1 :(得分:0)

您还可以使用SQL DATE_FORMAT 函数。

$appointments = Appointments::where('id', $id)
                        ->where(DB::raw('DATE_FORMAT(event_end_time, "%Y-%m-%d")), '<', $current)
                        ->count();

我认为这比通过php计算日期更好,因为它是由数据库完成的。

DATE_FORMAT docs