@MdaUZH

Как определить кол-во пятниц в месяце?

Здравствуйте, как определить кол-во пятниц в текущем месяце?
В Date() этого не нашел..

Подскажите пожалуйста, буду очень благодарен
  • Вопрос задан
  • 470 просмотров
Решения вопроса 1
anton_lazarev
@anton_lazarev
$date = new DateTime('first day of this month');
$end = new DateTime('last day of this month');

$fridays = 0;

while ($date <= $end) {
    if ($date->format('l') == 'Friday') {
        $fridays++;
    }

    $date = $date->modify('+1 day');
}

var_dump($fridays);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Как определить кол-во пятниц в месяце?

посчитать
date("l") - это день недели
date('Y-m-01') - это 1 день месяца
Ответ написан
@BorisKorobkov Куратор тега PHP
Web developer
Перебор всех дней - отстой. Есть вариант красивей:
$firstDayOfWeek = (int)(new DateTime('first day of this month'))->format('N'); // номер дня недели (от 1=пнд до 7=вск) первого дня месяца
$daysInMonth = (int)(new DateTime('last day of this month'))->format('j'); // количество дней в месяце
$lastDayOfWeek = (int)$firstDayOfWeek + ($daysInMonth % 28); // номер дня недели (от 1=пнд до 10!) последнего дня месяца
echo 4 + (int)($firstDayOfWeek <= 5 && $lastDayOfWeek >= 5); // 4 полных недели есть в каждом месяце. И в некоторых еще будет пятая пятница, если месяц начинается <= пятницы, а заканчивается >=.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы