echo date('Ym-d', strtotime('First Monday '.date('F o', strtotime("-4 months")));
Вышеуказанный код возвращает 2012-10-08, что неверно – первый понедельник октября 2012 года должен вернуться в 2012-10-01.
В списке изменений из руководства ( http://php.net/manual/en/function.strtotime.php ) указано следующее:
In PHP 5 prior to 5.2.7, requesting a given occurrence of a given weekday in a month where that weekday was the first day of the month would incorrectly add one week to the returned timestamp. This has been corrected in 5.2.7 and later versions.
Понятно, что это то, что вызывает неправильную дату возвращения, однако я использую PHP версию 5.4.7 (запуск xamp на localhost)!
Есть идеи?
Вам не хватает ключевого слова при попытке получить первый день месяца
echo date('Ym-d', strtotime('First Monday of '.date('F o', strtotime("-4 months")));
Я нашел информацию об этом сообщении об ошибке
Моя текущая версия – PHP 5.4.4, если она все еще не работает для вас