Посмотрел свои сайты - те которые на обычном виртуальном хостинге - там все норма. Те которые на VPS там также сыпется. Причина возникновения ошибки и способ решения:
На сервере, стояла локаль en_US.UTF-8 UTF-8
Прописал в настойках modx locale en_US.UTF-8 и ошибка ушла
Что бы использовать ru_RU.UTF-8
Сгенерировал две локали на сервере
root@localhost:~# cat /etc/locale.gen | grep -v '#'
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
При этом кириллическую локаль поставил основной, и все гуд.
проверить можно так
root@localhost:~# echo $LANG
Если без перенастроек сервера, то ставите локаль en_US.UTF-8, а для вывода дат на русском используете сниппет:
[[+publishedon:dateRU]]
Сам код сниппета dateRU:
<?php
$month_arr = array(
'01' => 'Января',
'02' => 'Февраля',
'03' => 'Марта',
'04' => 'Апреля',
'05' => 'Мая',
'06' => 'Июня',
'07' => 'Июля',
'08' => 'Августа',
'09' => 'Сентября',
'10' => 'Октября',
'11' => 'Ноября',
'12' => 'Декабря'
);
$d = $input;
$month = strftime("%m",$d);
$year = strftime("%Y",$d);
$day = strftime("%d",$d);
$month = $month_arr[$month];
return "$day $month $year";
?>
Если же после форматирования вместо русского формата даты выводится английская, то создайте сниппет setLocale и вставьте код:
<?php
setlocale(LC_ALL, "ru_RU.UTF-8");
?>
После вставьте этот сниппет в начало шаблона, где нужно выводить форматирование даты. Если русская дата отображается вопросиками, проверьте кодировку сайта, должна быть такой же как и в базе (желательно использовать UTF-8).