Осторожно ... простое добавление или вычитание одного месяца в строке yyyy-mm
может привести к неожиданным результатам в некоторых крайних случаях.Бывает, что я использую этот формат на сайте, который я создал (для расчета заработной платы и других вещей), и когда расчет был сделан 28 февраля (IIRC) и других крайних случаях, результат не всегда был таким, каким я должен был быть (т.е., следующий или предыдущий месяц)
Это немного больше кода, но я бы посоветовал:
$first_of_month = date('Y-m-01', strtotime($payroll['month']));
$newdate = date('Y-m', strtotime($first_of_month."-1 month"));
Принудительно установить в качестве начального значения полную дату Ymd в первый день.месяца (день для вас не имеет значения, так как он используется только для расчета), вы можете быть уверены, что расчет будет правильным каждый раз