Вы можете начать с чего-то вроде:
select datecol1, TIMESTAMPDIFF(DAY,datecol1,datecol2) as numDays from table;
Тогда в PHP вы можете довольно точно вычислить, сколько понедельников следует за d1, в зависимости от того, какой день недели d1 (вы можете использовать date () и strtotime (), чтобы выяснить это), и значение numDays. в наборе результатов.
РЕДАКТИРОВАТЬ: Непроверенный код, но общая идея должна работать:
function daysUntilMonday($date){
$dayOfWeek = date('w',strtotime($date)); //a number from 0-6, sunday is 0
$daysTillMonday = (8 - $dayOfWeek) % 7; //modulus is your friend.
return $daysTillMonday;
}
function countMondays($start,$numDays){
$numDays = $numDays - daysUntilMonday($start);
return floor($numDays/7)+1;
}
Может быть выключен одним, но в целом должен быть правильный подход.
НТН