Получить количество дней недели в данном месяце - PullRequest
6 голосов
/ 06 декабря 2011

Я хочу рассчитать количество дней недели в заданном месяце и году. Будни означают с понедельника по пятницу. Как мне это сделать?

Ответы [ 12 ]

0 голосов
/ 21 сентября 2013

это будет работать

// oct. 2013
$month = 10;

// loop through month days
for ($i = 1; $i <= 31; $i++) {

    // given month timestamp
    $timestamp = mktime(0, 0, 0, $month, $i, 2012);

    // to be sure we have not gone to the next month
    if (date("n", $timestamp) == $month) {

        // current day in the loop
        $day = date("N", $timestamp);

        // if this is between 1 to 5, weekdays, 1 = Monday, 5 = Friday
        if ($day == 1 OR $day <= 5) {

            // write it down now
            $days[$day][] = date("j", $timestamp);
        }
    }
}

// to see if it works :)
print_r($days);
0 голосов
/ 06 декабря 2011

Найти последний день и день недели для данного месяца
затем выполните простой цикл while, например: -

$dates = explode(',', date('t,N', strtotime('2013-11-01')));
$day = $dates[1]; 
$tot = $dates[0]; 
$cnt = 0;
while ($tot>1)
{   
    if ($day < 6)
    {   
        $cnt++;
    }   
    if ($day == 1)
    {   
        $day = 7;
    }   
    else
    {   
        $day--;
    }   
    $tot--;
}

$ cnt = общее количество дней недели (с понедельника по пятницу) за данный месяц

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...