سلام خسته نباشید
من برای کاربرانم توی سایت توی دیتابیس users یه فیلدی داریم به اسم expire که توسط cronjob میاد هر نیم ساعت یک بار چک میشه که از زمان فعلی کوچیک تر نباشه اگر باشه به کاربر اس ام اس میره که عضویتت منقضی شد
$now = Carbon::now()->format('Y-m-d h:i:s');
$applicants = Applicant::whereDate('expire', '<', $now)->get();
کد به صورت بالا هستش applicant همون user هستش
مشکل اینجاست با این که هم تاریخ هم زمان ذخیره میشه و ساعت expire روی 12:00:00 نیست و روی ساعت های مختلفه بازهم sms ها ساعت 4:30 دقیقه صبح میره یعنی دقیقا به ساعت جهانی 12:00 که شروع هر روز هستش میره
سلام. چند نکته:
اول از همه اینکه چک کنید در فایل config/app.php مقدار timezone برای ایران تنظیم شده باشه:
'timezone' => 'Asia/Tehran',
دوم اینکه نوع مقداری که برای ستون expire قرار دادید حتما از نوع DATETIME
باشه.
سوم اینکه به نظرم برای نیاز شما باید بجای whereDate از where استفاده کنید. یعنی جایگزین دو خط بالا این میشه:
$applicants = Applicant::where('expire', '<', Carbon::now())->get();
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟