PHP: получить название предыдущего месяца
Простая, казалось бы, задача, но есть один нюанс. Если попытаться получить название логичным способом.
< ?php echo strftime('%B', strtotime('-1 month')); ?>
То, например, запустив этот код, 31 мая вы получите в ответ «май» (или «may» в зависимости от локали). Это происходит потому, что -1 month
тупо отнимает 30 дней (31 — 30 = 1). Естественно, это не то, чего мы ожидали.
Правильным решением проблемы будет следующий код:
< ?php // Устанавливаем временныую зону date_default_timezone_set('Europe/Moscow'); // Вычисляем название предыдущего месяца echo strftime('%B', strtotime('first day of previous month')); ?>
Ссылки
- Навеяло: Неточность в функции strtotime()
- date_default_timezone_set
- strtotime
- Нотации, привязанные к дням
Так лучше:
date('F',mktime(0,0,0,date('m')-1))
🙂
Не спорю, но вопрос был скорее про функцию
strftime