Это просто ваше форматирование, которое является неправильным.Вам необходимо указать of
:
echo strftime("%m/%d/%y", strtotime("first Monday of December 2010"));
echo strftime("%m/%d/%y", strtotime("first Tuesday of December 2010"));
echo strftime("%m/%d/%y", strtotime("first Wednesday of December 2010"));
echo strftime("%m/%d/%y", strtotime("first Thursday of December 2010"));
echo strftime("%m/%d/%y", strtotime("first Friday of December 2010"));
echo strftime("%m/%d/%y", strtotime("first Saturday of December 2010"));
echo strftime("%m/%d/%y", strtotime("first Sunday of December 2010"));
Отпечатки:
12/06/10
12/07/10
12/01/10
12/02/10
12/03/10
12/04/10
12/05/10
Принятое решение работает, но у вас возникнут проблемы, если вы захотите найти второй день недели:
echo strftime("%m/%d/%y", strtotime("December 2010 second Wednesday"));
Отпечатки:
12/15/10
В документах приведено несколько примеров:
http://www.php.net/manual/en/datetime.formats.relative.php
Второй блок примечаний в вышеприведенной документацииобъясняет, как of
влияет на процесс вычисления даты:
Также обратите внимание, что "of" в "ординальном пространстве дня имени пространства" из "и" 'последнем' пространстве дня имени пространства '' 'делаетчто-то особенное.
- Устанавливает день месяца равным 1.
- "порядковый номер дня" в "не переходит в другой день".(Пример: «первый вторник июля 2008 года» означает «2008-07-01»).
- «порядковый день» переходит на другой день.(Пример: «первый вторник июля 2008» означает «2008-07-08», см. Также пункт 4 в приведенном выше списке).
- «last 'dayname' of '" принимает последнее имя текущего днямесяц.(Пример: «последний день июля 2008 года» означает «2008-07-30»)
- «Последнее имя дня» берет последнее имя дня текущего дня.(Пример: «последнее полугодие 2008 года» означает «2008-06-25»; «июль 2008» сначала устанавливает текущую дату на «2008-07-01», а затем «последнее полугодие» перемещается в предыдущую среду, которая называется «2008»).-06-25 ").