Я строю календарь PHP, который имеет вид недели, а также вид основного месяца.
У меня есть база данных, которая хранит все события на каждый день и загружает все при запуске в течение месяца.
Просмотр месяца завершен и работает нормально, позвольте мне показать вам, как это работает:
Запрос на вывод всех событий за этот месяц:
WHERE a.target_date BETWEEN $month_start AND $month_end
$source_date = mktime(0,0,0,$month,1,$year);
$days_in_month = date("t",$source_date);
$month_start = mktime(0,0,0,$month,1,$year);
$month_end = mktime(23,59,0,$month,$days_in_month,$year);
Обратите внимание, что $month
а также $year
определяются в URL, так что это не проблема
Моя проблема, я хочу использовать ту же логику, чтобы отозвать все мои события в ток неделю.
Однако я не уверен, как я могу это сделать.
Я могу найти номер недели, в которой мы находимся в месяце, с помощью этого кода:
$current_date = time();
$current_date = date("Y-m-d",$current_date);
$week = get_weeks($current_date, "monday");
Получить все события за текущую неделю:
$dt = new DateTime();
$dt->setISODate($dt->format('o'), $dt->format('W'));
echo sprintf(
"BETWEEN '%s' AND '%s'",
$dt->format('Y-m-d 00:00:00'),
$dt->modify('+6 day')->format('Y-m-d 23:59:59')
);
Других решений пока нет …