В любом PHP приложении нужно настраивать локаль и кодировку вне зависимости от настроек сервера. Это предотвратит неверное отображение и работу сайта при переезде на другой хостинг и других ситуаций.
FALSE. Влияет на строковые функции, даты и т.д. setlocale(LC_ALL, 'ru_RU.utf8');
Возможен вариант:
setlocale(LC_ALL, 'ru_RU');
Вместо LC_ALL можно указать отдельную категорию функций, на которые будет влиять локаль:
LC_COLLATE– функции сравнения строк,LC_CTYPE– функции преобразования и классификации строк,C_MONETARYL– для функции localeconv(),LC_NUMERIC– задает символ десятичного разделения,LC_TIME– форматирование даты/времени,LC_MESSAGES– для системных сообщений.
Настройка функций для работы с многобайтовыми строками.
mb_internal_encoding('UTF-8');
mb_regex_encoding('UTF-8');
mb_http_output('UTF-8');
mb_language('uni');
От него зависит результат работы функций с датами, подробнее о настройке временной зоны.
date_default_timezone_set('Europe/Moscow');
Ещё можно явно указать в какой кодировке передается контент, отправив заголовок:
header('Content-type: text/html; charset=utf-8');
// Локаль.
setlocale(LC_ALL, 'ru_RU.utf8');
mb_internal_encoding('UTF-8');
mb_regex_encoding('UTF-8');
mb_http_output('UTF-8');
mb_language('uni');
header('Content-type: text/html; charset=utf-8');
date_default_timezone_set('Europe/Moscow');





