php-logo
Время для прочтения: 0 мин. 28 сек.

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'));
?>

Ссылки

Для вставки кода используйте HTML-теги
<pre><code class="php">ваш код</code></pre>

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

2 комментария

по хронологии
по рейтингу сначала новые по хронологии

Так лучше:

date('F',mktime(0,0,0,date('m')-1))

🙂

Автор
Кобзарёв Михаил

Не спорю, но вопрос был скорее про функцию strftime