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;
Другие вопросы по тегам