یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دوره‌ها

استفاده از تخفیف‌ها
ثانیه
دقیقه
ساعت
روز
اشکان کیانی
1 سال پیش توسط اشکان کیانی مطرح شد
3 پاسخ

مشکل با CarbonPeriod در ایجاد ماه های 30 و 31 روزه

دو تاریخ دارم

$start = Carbon::parse($start_day);
$end = Carbon::parse($finish_day);

خروجی دوتاشون مث اینه

Carbon\Carbon Object ( [date] => 1402-04-28 00:00:00.000000 [timezone_type] => 3 [timezone] => UTC ) 

که یکی برای تاریخ 28 ام و بعدی برای ماه بعدش مثلا 5 ام است. الان من اینو وارد کد زیر میکنم

$dateRange = CarbonPeriod::create($start, $end);

حالا وارد لوپ زیر میکنم

        $dates = [];

        foreach ($dateRange as $date) {
            $dates[] = [
                $date->format('Y/m/d')
                , \verta($date->format('Y/m/d'))->formatWord('l')
            ];
        }

الان خروجی که بهم میده برج 4 رو 30 روزه و برج 5 رو 31 روزه و همینجوری یکی در میان نشون میده. فرمت خروجی کد بالا

Array
(
    [0] => Array
        (
            [0] => 1402/04/28
            [1] => چهارشنبه
        )
....
....
)

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

سلام خوبیی
با توجه به کدی که ارائه دادید به نظر می‌رسخ مشکلی در طول بازه تاریخی وجود داره برای حل این مشکل میتونید از تابع CarbonPeriod::days() استفاده کنید تا بازه رو به صورت روزانه تعریف کنه بعد توی در هر تکرار حلقه تاریخ رو به صورت روزانه افزایش بده.

در زیر، نحوه استفاده از CarbonPeriod::days() را نشون می‌دم:

$dateRange = CarbonPeriod::days()->startDate($start)->endDate($end);

$dates = [];

foreach ($dateRange as $date) {
    $dates[] = [
        $date->format('Y/m/d'),
        \verta($date->format('Y/m/d'))->formatWord('l')
    ];
}

هالا تاریخ به صورت روزانه تعریف میشه


اشکان کیانی
تخصص : برنامه نویس فرانت اند
@ashkankiani 1 سال پیش مطرح شد
0

از مشارکت شما بسیار متشکرم .
مشکل حل نشد چون startDate شما متدش وجود نداره. مشکل اصلی این است که کربن باید تاریخ 31 ام رو در کد زیر برگردونه ولی برنمیگردونه

$period = CarbonPeriod::create('1402-04-28', '1402-05-02');
        foreach ($period as $date) {
            print_r($date->format('Y-m-d') . ' - ');
        }

اشکان کیانی
تخصص : برنامه نویس فرانت اند
@ashkankiani 1 سال پیش مطرح شد
0

کسی راهکاری برای مشکل من نداشت؟


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

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