strtotime
это своего рода волшебство. И хотя я знаю, что это не может сделать что-нибудь, Я всегда думаю, прежде чем искать правильное решение.
Поэтому я хотел получить первое воскресенье и понедельник следующего месяца. Я попробовал это:
strtotime("first Sunday next month")
strtotime("first Monday next month")
после форматирования (%d/%m/%y
) результаты:
12/11/2014
13/11/2014
Это среда и четверг. Что дает? Я ожидал, что это не сработает или даст мне неправильное воскресенье, но что там делает среда?
Обновить
Мне не нужна помощь, чтобы понять, как добраться до следующего воскресенья. Я знаю, как делать правильные вычисления (я все равно знаю, как правильно искать). Мое предположение выше было только я возиться в поисках ярлыка. Мне интересно, однако почему я получаю этот специфический странный результат, который кажется совершенно не связанным со всем, что я написал
Попробуй это:
echo date('r', strtotime("first Sunday of next month")) . PHP_EOL;
echo date('r', strtotime("first Monday of next month")) . PHP_EOL;
Это очень сложно, но вы должны убедиться, что ваш формат точно описан в Относительные форматы раздел руководства. В этом случае вы хотите порядковый пробел день имени пробел ‘of’. В противном случае, это, вероятно, просто два последовательных вычисления.
В этом случае, поскольку все выражение не имеет известного формата, оно разделяется:
Тестовый код:
echo date('r', strtotime("first Sunday next month")) . PHP_EOL;
echo date('r', strtotime("first Monday next month")) . PHP_EOL;
echo PHP_EOL;
echo date('r', strtotime("first Sunday")) . PHP_EOL;
echo date('r', strtotime("first Monday")) . PHP_EOL;
echo date('r', strtotime("next month")) . PHP_EOL;
Отказ от ответственности: я почти никогда не понимаю это сам.
Пытаться
// strtotime("first Sunday", strtotime("next month")); // wrong
echo date("%d/%m/%y", strtotime("first sunday of next month"));
Но выводы неверные результаты для PHP 4.3 — 5.2.17!