Laravel получает дни в месяце из номера месяца?
В приложении Laravel у меня есть номер месяца от 01, 02, 03 до 12. Я хочу получить все дни в этом месяце. Я не могу использовать daysInMonth(), так как у меня нет даты, у меня есть только номер месяца.
Carbon::now()->daysInMonth();
как я могу это сделать?
3 ответа
Решение
Вы можете это сделать
Carbon::now()->month($month_number)->daysInMonth;
// ...
Carbon::now()->month(02)->daysInMonth; // 28
Route::get('/', function () {
return getDaysInMonth('March');
return getDaysInMonth(3, false);
});
function getDaysInMonth($month, $monthName = true): int
{
$today = Carbon::now();
$monthNames = [
'January' => 1, 'February' => 2, 'March' => 3, 'April' => 4,
'May' => 5, 'June' => 6, 'July' => 7, 'August' => 8,
'September' => 9, 'October' => 10, 'November' => 11, 'December' => 12,
];
if($monthName)
return $today->month($monthNames[$month])->daysInMonth;
return $today->month($month)->daysInMonth;
}
Вы также можете сделать это
Carbon::createFromDate(null, $number_of_month, 1)->daysInMonth;