Как правильно было указано в предыдущем ответе , этот прием работает, но также имел предостережений до PHP 5.6.22
, PHP 7.0.7
и PHP 7.1-dev
:
strtotime('last monday', strtotime('tomorrow'));
// or this one, which is shorter, but was buggy:
strtotime('Monday this week');
Для тех, кто предпочитает «путь джедая», для работы с объектами DateTime
класса , решение будет следующим:
(new \DateTime())->modify('tomorrow')->modify('previous monday')->format('Y-m-d');
илиеще более короткая запись:
\DateTime('Monday this week')
Будьте осторожны, потому что, если вы делаете то же самое с SQL, вам не нужно иметь ни одного из этих приемов в mysql с добавлением"завтра".Вот как будет выглядеть решение:
SELECT DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) as last_monday;