有很多用户在我的网站上购买高级帐户。如何选择帐户到期日正好在 5 天后的用户,并通知他们续订帐户?
appconsolekernel.php
添加下面的函数,但不知道如何在查询中对时间进行编码。
/**
* Define the application's command schedule.
*/
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')
// ->hourly();
$schedule->call(function () {
$users = User::where('expiration_time', '=', Carbon::now()->addDays(5))->get();
//Notify related user about account emigrations
Notification::send($users, new AccountExpiration());
})->daily();
}
您的代码是正确的,唯一可能导致查询失败的一件事是您的 datebase 表列类型。
如果expiration_time列类型为 DATE,则应使用
Carbon::now()->addDays(5)->toDateString()
如果expiration_time列类型是 DATETIME,则应使用
Carbon::now()->addDays(5)
希望这有帮助。
让用户在今天和 5 天后之间。
User::whereBetween('expiration_time', [Carbon::now(), Carbon::now()->addDays(5)])->get();
或者
User::whereBetween('expiration_time', [date("Y-m-d"), date("Y-m-d", strtotime("+5 days"))])->get();