Следующее дает мне October
echo date('F');
Я использую следующий код, чтобы дать мне название предстоящего месяца (месяц после этого), поэтому я надеюсь увидеть November
,
$nextmonth = date("F",strtotime("+1 months"));
Сегодня 31 октября, но вышеприведенное дает «декабрь». Что я делаю не так? Как я могу получить месяц после текущего месяца?
Используйте относительные форматы, чтобы получить первый день следующего месяца:
echo (new DateTime('first day of next month'))->format('F');
Причина, по которой вы видите эту проблему, заключается в том, что, добавляя время к дате в конце месяца, вы сталкиваетесь с проблемами, когда месяцы менее 31 дня. Это может заставить вас пропустить месяц. Лучше всего всегда начинать математику с даты в начале месяца, прежде чем добавлять к ней время или относительные форматы, как показано выше.
PHP 5.3:
$nextMonth = new DateTime('first day of next month');
echo $nextMonth->format('F');
Других решений пока нет …