Здравствуйте.
Делал не давно график один по неделям
Надо было расчитывть в выбранном периоде первую неделю и конечную
Делал я это так на PHP
$date_start = strtotime("2018-05-03"); // тут может преобразование отличаться
$week_start=date("W", $date_start);
То есть получаем 18 неделю для даты 2018-05-03
Делаем запрос в базу такого типа
SELECT `date_invoice` ,WEEK(date_invoice) as week_num FROM `invoce` WHERE `date_invoice` BETWEEN '2018-05-01' AND '2018-05-31'
И получаем 13 записей с датами 2018-05-03 и 2018-05-04
Я решил преминить для базы стандартную функцию WEEK как видно из запроса
Но суть проблемы в том, что php мне выдает о дате 2018-05-03 - 18 неделя
а MySQL выдает о дате 2018-05-03 - 17 неделя
Но по факту PHP корректно считает
Вот пример вывода из базы, для тех кто не верит