We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 32195
    • 78 Posts
    как исправить в прошлой версии правил debug.class.inc функцию formatDate, в новой версии этой функции просто нет, может кто подскажет как выводить даты по русски
      • 22532
      • 349 Posts
      проще всего в коде дитто где нибудь в начале прописать строчку
      setlocale ( LC_ALL, 'ru_RU.UTF-8' );

      соответственно если сайт в кодировке utf-8
        • 32195
        • 78 Posts
        Работает нормально только выдаёт даты в таком виде Января Февраля Марта а надо бы Январь Февраль может кто подскажет как исправить, читал тут http://modxcms.com/forums/index.php/topic,16263.msg111246.html#msg111246 но неработает

        function formatDate($dateUnixTime, $dateFormat) {
        global $modx;
        $dt =  strftime($dateFormat, (intval($dateUnixTime) + $modx->config["server_offset_time"]));
        setlocale(LC_ALL, "ru_RU.CP1251");
        if ($modx->config["modx_charset"] == "UTF-8") {
        $dt = utf8_encode($dt);
        }
        return $dt;
        }
          • 785
          • 2,113 Posts
          Quote from: webzic at Jan 28, 2009, 04:11 AM

          но неработает
          Что не работает? По ссылке разные варианты описаны. А по сути – если в локали на сервере прописано Января, а нужно января или Январь, надо или менять локаль (вряд ли получится), или писать собственную обработку на PHP, которая заменит выдаваемые слова на нужные. В теме по ссылке такая обработка описана.
          А приведенный код нужен только если на сервере есть правильная локаль для cp1251, а для utf8 – нет.
            Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
            Статьи о MODx, регулярно новые публикации
            • 32195
            • 78 Posts
            Вроде решил проблемму вообще я её немного неправильно обозначил у меня в Ditto то даты нормально выводились а вот в сниппете Reflect (который выводит архивы) никак не хотели работать, пришлось вставить функцию преобразования которую нашёл на форуме может кому понадобится
            function formatDate($dateUnixTime, $dateFormat) {
                global $modx;
                $eng = array("/January/","/February/","/March/","/April/","/May/","/June/","/July/","/August/","/September/","/October/","/November/","/December/");
                $rus = array("январ","февраля","март","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря");
                $dt = preg_replace($eng, $rus , strftime($dateFormat, (intval($dateUnixTime) + $modx->config["server_offset_time"])));
                return $dt;
            }