php -r 'setlocale(LC_ALL, "ru"); echo date("F", time()), "\n";' prints "June" in English despite of the fact that I have set Russian locale.
Why does it not work as I need (with Russian month names)?
You will need to use strftime instead of date to format a date taking into account locale.
php -r 'setlocale(LC_ALL, "ru"); echo strftime("%B", time()), "\n";' prints "June" in Englishru_RU. You may want to add .utf8. the full locale should be ru_RU.utf8