Попытка получить номер за месяц до текущего месяца
Я пытаюсь получить число месяцем ранее текущего месяца (теперь это 04 (апрель), поэтому я пытаюсь получить 03). Я пробую это:
date('m')-1;
но я получаю 3. Но я хочу получить 03.
Ответ 1
Правильный способ сделать это действительно:
date('m', strtotime('-1 month'));
Как вы увидите, в январе с другими ответами происходят странные вещи.
Ответ 2
В настоящее время принятый ответ приведет к неправильному ответу, если день месяца (для текущего дня) больше, чем в последний день месяца за предыдущий месяц.
например. Результат выполнения date('m', strtotime('-1 month')); 29 марта (в течение не-високосного года) будет 03, потому что 29 больше, чем любой день месяца в феврале, и, таким образом, strtotime('-1 month') действительно вернется 1 марта.