date — PHP работает с метками времени для определения недели

Я строю календарь 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");

0

Решение

Получить все события за текущую неделю:

$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')
);

демонстрация

0

Другие решения

Других решений пока нет …