Joomla 1.5 Как поменять формат даты?

Тема в разделе "Изменение шаблона (кастомизация)", создана пользователем najdera, 12.08.2010.

  1. najdera
    Offline

    najdera Недавно здесь

    Регистрация:
    26.07.2010
    Сообщения:
    48
    Симпатии:
    0
    Пол:
    Женский
    У меня стоит формат LC3, но перед датой выводиться 0, например 07 Января 1999. Как убрать ноль?
     
  2.  
  3. DKraev
    Offline

    DKraev <i>(aka gft)</i>

    Регистрация:
    16.08.2008
    Сообщения:
    1 627
    Симпатии:
    216
    Пол:
    Мужской
    В общем так. В языковом файле, в формате LC3 меняйте %d на %e - дата будет выводится без нуля. Но на локальном компе это работать не будет, так как Windows символ %e не понимает. На хостинге все работает без проблем, ноль исчезает!
     
  4. Offline

    botanist специалист

    Регистрация:
    15.02.2009
    Сообщения:
    461
    Симпатии:
    49
    Пол:
    Мужской
    Код (PHP):
    1. $d = JHTML::_('date', time(), JText::_('DATE_FORMAT_LC3'));
    2.  $search = substr($d,0,2);
    3.  $replace = (int)$search;
    4.  echo str_replace($search, $replace, $d);
     
    najdera нравится это.
  5. DKraev
    Offline

    DKraev <i>(aka gft)</i>

    Регистрация:
    16.08.2008
    Сообщения:
    1 627
    Симпатии:
    216
    Пол:
    Мужской
    Да, но это нужно делать везде, где встречается вывод даты, что не очень удобно...
     
  6. DKraev
    Offline

    DKraev <i>(aka gft)</i>

    Регистрация:
    16.08.2008
    Сообщения:
    1 627
    Симпатии:
    216
    Пол:
    Мужской
    Все, окончательный вариант, работает везде, в том числе и на локалке (и на Windows хостинге).

    Итак, в \language\ru-RU открываем файл ru-RU.ini. В требуемом формате вместо %d вставляем %e Все будет работать. Но на локальном изменений мы не увидим. Дата просто не будет отображаться.

    Затем открываем \libraries\joomla\utilities\date.php

    Ищем функцию function _strftime($format, $time) в 243 строке. Перед
    Код (PHP):
    1. $date = strftime($format, $time);
    вставляем следующий код:
    Код (PHP):
    1. if(strpos($format, '%e') !== false)
    2.             $format = str_replace('%e', date('j', $time), $format);


    Теперь все работает.
     
  7. najdera
    Offline

    najdera Недавно здесь

    Регистрация:
    26.07.2010
    Сообщения:
    48
    Симпатии:
    0
    Пол:
    Женский
    Огромное спасибо! Лучшее решение!
    Ваши ответы всегда короткие и по сути дела!
     

Поделиться этой страницей

Загрузка...