如何让用户在 Laravel 今天过生日?

How to get users having birthday today in Laravel?

我需要在我的应用程序中向用户发送生日祝福。

我有一个 table 用户,其列为 dateOfBirth。我需要一个查询来检索出生日期与今天匹配的用户。

例如,如果用户的出生日期值为 1983-08-07,我必须向用户发送生日祝福。 我使用了下面的代码,但给出的是空值,此查询没有任何结果。

public function today(Request $request)
{
    $today = Carbon::now();
    $date = today();
    $user = user::whereDate('dateOfBirth', $today->day)->whereMonth('dateOfBirth', $today->isoFormat('DD'))->get();
    return view('today',compact('user'));
}

提前谢谢你。

当您使用 whereDate 函数时,请确保您传入的日期与 sql format.You 可以使用函数 date('d-m-Y H:i:s');格式化当前时间

您可以使用 whereMonthwhereDay

$today=now();

$user=User::whereMonth('dateOfBirth',$today->month)
            ->whereDay('dateOfBirth',$today->day)
            ->get();

如果我没记错的话,类型列 dateOfBirth 是字符串。 所以你不能使用 whereMonthwhereDay.

解决:

user::where('dateOfBirth', 'LIKE', '%' . Carbon::now()->format('-m-d'))->get();

或者 将类型 dateOfBirth 更改为 timestamp