【问题标题】:Getting the year from a date property in a query从查询中的日期属性获取年份
【发布时间】:2018-07-24 22:57:26
【问题描述】:

我知道我可以像这样使用碳从数据中得到一年。

获取当前年份。

$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();

我如何查看获取事件结束时间(即日期)年份。例如,如果日期是 11-05-2018,我可以只获取年份(2018 年)并检查约会是否发生在 2018 年

【问题讨论】:

    标签: laravel eloquent php-carbon


    【解决方案1】:

    Laravel 的查询构建器包含一个方法:

    whereYear('event_end_time', $year)
    

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

    【讨论】:

      【解决方案2】:

      您也可以使用 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

      【讨论】:

        猜你喜欢
        • 2012-11-07
        • 2016-03-16
        • 2023-01-15
        • 1970-01-01
        • 2012-05-09
        • 2017-01-19
        • 1970-01-01
        • 1970-01-01
        • 2023-03-08
        相关资源
        最近更新 更多