Carbon - Сравнение двух дат по дням - PullRequest
0 голосов
/ 18 марта 2019

Недавно я попытался сравнить две даты по дням. например, я хочу проверить, платили ли ученики его / ее плату 5 раз в месяц или нет.

Например, студент зарегистрирован в 2019-01-13, и теперь он равен 2019-03-20. Поэтому я хочу, чтобы система уведомила меня, что время оплаты студента прошло 7 дней. Так же он должен автоматически проверяться на следующие месяцы.

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Это должно выглядеть так

use Carbon\Carbon // don't forget to import carbon in your class

$days = 5;

// i would recommend to use chunk if you have a lot of records & limit this query t only people that might be subject to this alert
$students= Student::get();
$notifyList = [];

// assuming that the registration date column is created at and it's a valid date

$students->each(function($student) use (&$notifyList,$days){
  $notify = Carbon::parse($student->registration_date)->addDays($days)->lt(Carbon::now());
  if($notify){
   $notifyList[] = $student;
  }
});

Массив будет содержать пользователей, которые превзошли свою дату

0 голосов
/ 18 марта 2019

Вы можете определить планирование задач

$schedule->command('student:fees_notify')->monthlyOn(5, '01:00');

Вы можете использовать команду schudele, основываясь на вашей логике. сработает 5-го числа в начале месяца (01:00)

Ваша команда будет выглядеть примерно так

class StudentFeesNotify extends Command
{
   protected $signature = 'student:fees_notify';
   protected $description = 'your desc.....';

   public function handle()
   {
      // you can write your logic here
   }
}
...