php strtotime "последняя пятница апреля 2012" не возвращается в прошлую пятницу - PullRequest
3 голосов
/ 12 февраля 2012

Когда я запускаю следующий код, я получаю 30 апреля, а не 27-е.

strtotime("Last Friday April 2012");

Вместо этого я попытался запустить его как четверг, и я вернулся на 29-е.

Все последующие работают нормально.

strtotime("First Sunday February 2012");
strtotime("Third Monday February 2012");
strtotime("Second Monday October 2012");
strtotime("Fourth Thursday November 2012");

Есть идеи?

Ответы [ 2 ]

9 голосов
/ 12 февраля 2012

Я полагаю, что вы вернетесь 30 марта, а не в апреле, верно?

Last Friday April 2012 делает следующее:

  • April 2012 устанавливает дату для2012-04-01
  • Last Friday принимает дату предыдущей (последней) пятницы, которая является 2012-03-30

Если вы хотите, чтобы последняя пятница апреля была, используйтеLast Friday May 2012 вместо

См. Дата / Время - Относительные форматы из руководства по PHP.

4 голосов
/ 12 февраля 2012

Вы также можете использовать:

strtotime("last friday of April 2012");

echo date( 'F jS, Y h:i:s A', strtotime("last friday of April 2012"));

Выводит желаемую дату:

April 27th, 2012 12:00:00 AM
...