Чтобы получить все недели в месяце с помощью 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);
Эти методы дадут вам массив, содержащий номера недель в указанном месяце и году.