دو تاریخ دارم
$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] => چهارشنبه
)
....
....
)
سلام خوبیی
با توجه به کدی که ارائه دادید به نظر میرسخ مشکلی در طول بازه تاریخی وجود داره برای حل این مشکل میتونید از تابع 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')
];
}
هالا تاریخ به صورت روزانه تعریف میشه
از مشارکت شما بسیار متشکرم .
مشکل حل نشد چون startDate شما متدش وجود نداره. مشکل اصلی این است که کربن باید تاریخ 31 ام رو در کد زیر برگردونه ولی برنمیگردونه
$period = CarbonPeriod::create('1402-04-28', '1402-05-02');
foreach ($period as $date) {
print_r($date->format('Y-m-d') . ' - ');
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟