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

Ссылки

Источник: https://www.kobzarev.com/programming/php-get-the-name-of-the-previous-month/

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

Суровый русский тимлид. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все. Делает крутые высоконагруженные сайты, поэтому уже почти захватил весь рынок WordPress разработки в России. Не дает никому делать сайты без спроса. Ведет блог о разработке, дайджест в телеграмме и в ВК. Любит сиськи, баню и радиоэлектронику. 100% патриот (но это не точно). Тролль 542 уровня. Ездит в отпуск раз в 5 лет.

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

%d такие блоггеры, как: