Я использую ниже код для получения в следующий понедельник, но я не могу получить следующий воскресенья на той же неделе. как сегодня в пятницу, и если я буду искать на следующей неделе, тогда мне нужно поехать на следующую неделю понедельника в воскресенье.
SELECT now() + INTERVAL 7 - weekday(now()) DAY
Это выше дает мне следующий понедельник.
Мне нужно добавить еще 7 дней и получить дату воскресенья в том же формате.
2018-07-30 14:45:43 Понедельник
2018-08-05 14:45:43 Воскресенье
Добавьте 6 дней, чтобы получить воскресенье в понедельник. Добавьте 13 дней, чтобы добавить второе воскресенье после понедельника:
SELECT (now() + INTERVAL 7 - weekday(now()) DAY) + INTERVAL 6 DAY;
Функция strtotime()
отлично подходит для неопределенных относительных запросов, таких как:
$monday = date('Y-m-d', strtotime('next monday'));
$sunday = date('Y-m-d', strtotime('next monday + 6 days'));
Урожайность:
2018-07-30
2018-08-05
Если я правильно понимаю, вы получили "2018-07-30 14:45:43" и должны получить воскресенье. Воскресенье - через шесть дней после понедельника, поэтому просто добавьте 6-7 и получите 13.
SELECT now() + INTERVAL 13 - weekday(now()) DAY
Как насчет
select monday, monday + interval 6 day as sunday from
(select now() + INTERVAL 7 - weekday(now()) DAY as monday) s1