Решено! Я оставляю это здесь для вас.
Эти две строки кода подходят для первого рабочего дня:
date('d-m-Y',strtotime('+0 weekdays October 2016'))
Возвращает: 3-10-2016 -> ОК
date('d-m-Y', strtotime('weekday february 2016'))
Возвращает: 1-2-2016 -> ОК
Последний рабочий день данного месяца и года:
$year=2016;
$month='october';
$lastworkable=date('d-m-Y', strtotime('last weekday '.date("F Y", strtotime('next month '.$month.' '.$year))));
Возвращает: 29-07-2016 за июль -> ОК
Я надеюсь, что это поможет вам
Редактировать 1
<?php echo date('d-m-Y',strtotime("last Monday of July 2016")); //25-07-2016
echo date('d-m-Y',strtotime("last Monday of October 2016")); //31-10-2016
Редактировать 2
Конечно, это поможет вам
echo date('Y-m-d', strtotime('2016-09-01 first weekday'));
Других решений пока нет …