حسین صادقی
4 سال پیش توسط حسین صادقی مطرح شد
7 پاسخ

نمایش تعداد مقاله های ثبت شده در این ماه در لاراول

سلام دوستان روزتون بخیر
در لارول چطوری میشه مقاله هایی که در ماه جاری ثبت شده رو گرفت؟
با استفاده از ستون created_at
ممنون


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
1

این کوئری:

Article::whereMonth('created_at', '=', Carbon::now()->month)->count()

داره میگه تعداد مقالات این ماه رو برگردون.. اما سالش اهمیت نداره... میشه مقالاتی که در سپتامبر نوشته شدند
به این ترتیب نکات زیر رو داریم:

  • سال بعد همین موقع ، این کوئری مقالات سپتامبر سال جدید و سپتامبر سال قبل رو جمع میکنه و برمیگردونه.
  • مثلا الان حدودا ۹ سپتامبر هست و با این کوئری شما تعداد مقالات ۹ روز پیش رو میگیری و نه ۳۰ روی پیش.
  • حتی اگر از whereYear هم در کنارش استفاده کنی باز هم مشکل ۹ روز پیش رو داری.

اگر قصدت شمارش مقالات از اول هر ماه هست: از whereMonth و whereYear استفاده کن
اگر قصدت شمارش مقالات ۳۰ روز گذشته هست: از whereDate استفاده کن


coarad supp
تخصص : برنامه نویس لاراول
@coaradsupp 4 سال پیش مطرح شد
2

سلام

Article::whereMonth('created_at', '=', Carbon::now()->subMonth()->month)->get(['name','created_at']);

https://www.tutsmake.com/laravel-get-record-last-week-month-15-days-year/#:~:text=If%20you%20want%20to%20get,whereMonth()%20and%20get().


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش آپدیت شد
2

از متد whereMonth که دوستمون گفت میتونی استفاده کنی..
همچنین از متد whereDate هم میتونی استفاده کنی:

$articles = Article::latest()
    ->whereDate(
        'created_at', 
        '>',
        \Carbon\Carbon::now()->subMonth())
    ->get();

حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
1

سلام دستوری که شما نوشتین تا حدودی نادرست است ما باید تاریخ کامل رو چک کنیم. در دستور شما اگر ما چند سال با ماهای یکسان داشته باشیم دستور کوئری شما همه مقاله های اون سال هارو میاره که ایشون مقاله های سال جاری و ماه جاری رو میخواستن بعد متد subMonth که اشاره به ماه قبلی دارن.

Article::whereYear('created_at', '=', Carbon::now()->year)
    ->whereMonth('created_at', '=', Carbon::now()->month)
    ->get(['name','created_at']);

@coaradsupp


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
0

ممنونم از دستور خوبی که معرفی کردین
@ali.bayat


حسین صادقی
@Hossein.sadeGHi 4 سال پیش مطرح شد
0

@ali.bayat

Article::whereMonth('created_at', '=', Carbon::now()->month)->count()

سلام اگر به این صورت بنویسم بعدا مشکلی که بوجود نمیاد؟


woz
تخصص : fan of open source world
@wozniak 4 سال پیش آپدیت شد
1

@Hossein.sadeGHi
اگر بخواهید کمی بهینه تر بشه میشه از این هم استفاده کرد :

->whereRaw("date_add(created_at, INTERVAL 1 MONTH) > NOW()")
or
->whereRaw("date_add(created_at, INTERVAL 30 DAY) > NOW()")

علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
1

این کوئری:

Article::whereMonth('created_at', '=', Carbon::now()->month)->count()

داره میگه تعداد مقالات این ماه رو برگردون.. اما سالش اهمیت نداره... میشه مقالاتی که در سپتامبر نوشته شدند
به این ترتیب نکات زیر رو داریم:

  • سال بعد همین موقع ، این کوئری مقالات سپتامبر سال جدید و سپتامبر سال قبل رو جمع میکنه و برمیگردونه.
  • مثلا الان حدودا ۹ سپتامبر هست و با این کوئری شما تعداد مقالات ۹ روز پیش رو میگیری و نه ۳۰ روی پیش.
  • حتی اگر از whereYear هم در کنارش استفاده کنی باز هم مشکل ۹ روز پیش رو داری.

اگر قصدت شمارش مقالات از اول هر ماه هست: از whereMonth و whereYear استفاده کن
اگر قصدت شمارش مقالات ۳۰ روز گذشته هست: از whereDate استفاده کن


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام