redfieldone
@redfieldone
Старый , лысый и без денег.

Как вывести следующий месяц от текущего месяца?

Добрый день. Прошу помощи в выводе следующего месяца от текущего, и еще одного.
То бишь, допустим, мы имеем ввиду стандартную функцию
date ("m");
// Грубо говоря, это текущий месяц, а как можно вывести следующий, имея только текущий? 
// Ну код не верный, но, думаю, многие поймут о  чем я
date("m", +1); //Июнь 
date("m", +2); //Июль

Спасибо большое.
  • Вопрос задан
  • 8122 просмотра
Решения вопроса 2
$date = new \DateTime('now');
echo $date->modify('+1 month')->format('M');
Ответ написан
Immortal_pony
@Immortal_pony Куратор тега PHP
date("m", strtotime("+1 month"));

Тесты показали, что строковая модификация "+1 month" может выдавать не свовсем ожидаемый результат, так как в качестве длины месяца берется длина текущего месяца. Например, сегодня 2016-01-31, однако дата "+1 month" будет равна 2016-03-02.
Вырезка из документации про это:

Relative month values are calculated based on the length of months that they pass through. An example would be "+2 month 2011-11-30", which would produce "2012-01-30". This is due to November being 30 days in length, and December being 31 days in length, producing a total of 61 days.


Менее изящный, но более надежный вариант, который позволяет избежать подобных проблем:
$next_month = date("m")+1 > 12 ? 1 : date("m")+1;
$post_next_month = $next_month+1 > 12 ? 1 : $next_month+1;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы