Получить следующий месяц с помощью mktime()

Я пытаюсь получить следующий месяц, используя функцию PHP mktime().

Я хочу получить результат вроде 07/2015, но вместо этого он дает мне 01/2015.

Вот код, который я использую:

$next_month = strftime('%d/%Y', strtotime('+1 month', mktime(0,0,0,$month,1,$year)));

Значение $month равно 06.

Значение $year равно 2015.


person V4n1ll4    schedule 23.06.2015    source источник
comment
Конечно, вы получаете 01/2015. Вы печатаете день месяца после того, как специально установили его на 1. Я подозреваю, что вы хотите strftime('%m/%Y', ...);.   -  person Phylogenesis    schedule 23.06.2015


Ответы (2)


Если вы настаиваете на использовании вашей версии, то она должна быть %m вместо %d, т.е.:

$year = 2015;
$month = 6;
echo strftime('%m/%Y', strtotime('+1 month', mktime(0,0,0,$month,1,$year)));
person varnie    schedule 23.06.2015

Как насчет того, чтобы попробовать DateTime. Например:

$date = new DateTime('next month');
echo $date->format('m/Y');

Если месяц и год являются переменными, то также будет работать следующее:

$date = new DateTime("$year-$month-01");
$date->modify('next month');
echo $date->format('m/Y');
person Jonnix    schedule 23.06.2015
comment
Как бы я использовал это с вводом 06/2015? Мне в основном нужно добавить 1 месяц на 06/2015. - person V4n1ll4; 23.06.2015
comment
Обновлено с переменным вводом. - person Jonnix; 23.06.2015