PHP-методы для получения всех недель в месяце | Примеры и фрагменты кода

Чтобы получить все недели в месяце с помощью PHP, вы можете использовать различные методы. Вот несколько примеров:

Метод 1. Использование класса DateTime

function getWeeksInMonth($month, $year)
{
    $weeks = array();
    $start = new DateTime();
    $start->setDate($year, $month, 1);
    $start->modify('first day of this month');
    $end = new DateTime();
    $end->setDate($year, $month, 1);
    $end->modify('last day of this month');
    $end->modify('+1 day');
    $interval = new DateInterval('P1W');
    $period = new DatePeriod($start, $interval, $end);
    foreach ($period as $week) {
        $weeks[] = $week->format('W');
    }
    return $weeks;
}
$month = 1; // January
$year = 2022;
$weeks = getWeeksInMonth($month, $year);
print_r($weeks);

Метод 2: использование функцийcal_days_in_month и date

function getWeeksInMonth($month, $year)
{
    $weeks = array();
    $daysInMonth = cal_days_in_month(CAL_GREGORIAN, $month, $year);
    for ($day = 1; $day <= $daysInMonth; $day++) {
        $week = date('W', strtotime("$year-$month-$day"));
        if (!in_array($week, $weeks)) {
            $weeks[] = $week;
        }
    }
    return $weeks;
}
$month = 1; // January
$year = 2022;
$weeks = getWeeksInMonth($month, $year);
print_r($weeks);

Эти методы дадут вам массив, содержащий номера недель в указанном месяце и году.